我正在使用带有属性DateRange
和:from
的ActiveModel模型:to
,我希望它的行为如下。
d = DateRange.new
=> #<DateRange:0x0000010532d3f8>
d.from = "03/03/2010"
=> Wed, 03 Mar 2010
d.to = Date.today
=> Mon, 3 Mar 2014
换句话说,无论何时设置属性,如果它是字符串格式,则应将其解析为日期格式。
是否存在ActiveModel回调函数,该函数将在更改属性时立即运行?如果没有,最好的做法是什么?
答案 0 :(得分:1)
您不需要任何回调,您需要的是自定义设置器方法:
class DateRange
attr_reader :from, :to
def from=(value)
# implementation
end
def to=(value)
# implementation
end
end