我有一个带有一些相关日期字段的模型。
def started_at_date=(value)
@started_at_date = value
end
def completed_at_date=(value)
@completed_at_date = value
end
...
吸气剂是通过处理的method_missing
,效果很好。
def method_missing(method, *args, &block)
if method =~ /^local_(.+)$/
local_time_for_event($1)
elsif method =~ /^((.+)_at)_date$/
self.send :date, $1
elsif method =~ /^((.+)_at)_time$/
self.send :time, $1
else
super
end
end
def date(type)
return self.instance_variable_get("@#{type.to_s}_date") if self.instance_variable_get("@#{type.to_s}_date")
if self.send type.to_sym
self.send(type.to_sym).in_time_zone(eventable.time_zone).to_date.to_s
end
end
...
我想动态添加设置器,但我不确定如何以避免ActiveRecord::UnknownAttributeError
s.