ActiveModel:模仿列类型的日期时间

时间:2014-03-03 09:22:56

标签: ruby-on-rails types callback type-conversion activemodel

我正在使用带有属性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回调函数,该函数将在更改属性时立即运行?如果没有,最好的做法是什么?

1 个答案:

答案 0 :(得分:1)

您不需要任何回调,您需要的是自定义设置器方法:

class DateRange
  attr_reader :from, :to

  def from=(value)
    # implementation
  end

  def to=(value)
    # implementation
  end
end