1

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
4

1 に答える 1