1

我正在跟踪我的模型的更改,我想跟踪 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)

我怎样才能让它工作?

4

1 回答 1

2

我收到了同样的错误,事实证明我们所指的文档已经过时。

当前触发此更改的方法是调用attribute_will_change! :attr_name

有关更多详细信息,请参阅此处接受的答案。

于 2013-04-12T04:10:40.547 回答