使用previous_changes跟踪虚拟属性的模型更改

时间:2012-08-22 08:38:09

标签: ruby-on-rails-3 activemodel

我正在跟踪模型的变化,我想跟踪has_many关系的变化。该模型有:

define_attribute_method :tag_tokens
attr_reader :tag_tokens

def tag_tokens=(ids)
  tag_tokens_will_change! unless ids == @tag_tokens
  self.tag_ids = ids.split(",")
end

http://railscasts.com/episodes/258-token-fieldshttp://api.rubyonrails.org/classes/ActiveModel/Dirty.html

的组合

结果是此异常是由define_attribute_method行引起的。我相信这种方法是创建tag_tokens_will_change方法所必需的。

ruby-1.9.3-p194@mm/gems/activerecord-3.2.8/lib/active_record/attribute_methods/time_zone_conversion.rb:59:in `create_time_zone_conversion_attribute?': undefined method `type' for nil:NilClass (NoMethodError)

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:2)

我收到了同样的错误,结果我们所指的文档已经过时了。

触发此更改的当前方式是致电attribute_will_change! :attr_name

有关详细信息,请参阅已接受的答案here