私はテーブルの列valid_toを持っています。これは、日付を表すはずです:エントリがデータベースに保存されてから30日です。 しかし、私はモデルでそのようなことをすることができますか? など。私はそのようなことをこの方法で行うことができ、コントローラに:Rails:モデルの日付属性をコールバックで変更できますか?例:Date.current + 1(d + other)
@baby = baby.create(baby_params.
merge(:valid_to => DateTime.current + 30)
ビューでは、私は、フォームで隠しフィールドを使用することができます。
<%= f.hidden_field :valid_to => DateTime.current + 30 %>
ので、モデルにそんなことをする方法はありますか?私はself.valid_to before_validationを定義しようとしましたが、役に立たなかった:irbのvalid_toカラムはまったくゼロです。追加するには:私は文字列ではなくdatetimeとして保存します。最後に
UPDATE
解決した
before_validation :set_valid_to, :on => :create
def set_valid_to
self[:valid_to] = 30.days.from_now
end
とモジュールにこの事を住んでいたが、それはまた別の話だ...
の可能重複http://stackoverflow.com/questions/4654457/how-to-add-10-days-to-current-time-in-rails – Brad
@ブラッド、私は文句で脱出した場合申し訳ありませんが、irbに言及することで、私は計算ではなく、Baby.allを呼び出す、コンソールのdbエントリを観察することを意味しました。その質問は答えとして私の問題を解決するのに役立たなかった。 –