Reformジェムを使用しています。2 つの日付を params の 2 つの個別の属性として渡すフォームがあるとします。interval今フォームでは、これらの 2 つの日付間の間隔を計算し、それをモデルに保存するために呼び出される別の属性 (既存のモデル属性でもあります) をインスタンス化したいと考えています。
# some_form.rb
class SomeForm < Reform::Form
property: :starts_on
property: :ends_on
property: :interval
end
受信日付に基づいて間隔を入力し、検証してモデルに保存する最良の方法は何ですか?
validateメソッドのオーバーライドやpopulator/prepopulatorオプションの使用など、さまざまなことを試しましたが、役に立ちませんでした。
最良のシナリオでは、次のようになると思います。
class SomeForm < Reform::Form
property: :starts_on
property: :ends_on
property: :interval, populate: :calculate_interval
end
def calcute_interval
(starts_on..ends_on).count
end