我正在使用Reform
宝石。假设我有某种形式,我将两个日期作为参数中的两个单独属性传递给它。现在在表单中,我想实例化另一个属性(这也是现有的模型属性)interval
来计算这两个日期之间的间隔,然后将其保存到模型中。
# 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