【问题标题】:Track model changes on virtual attributes with previous_changes使用 previous_changes 跟踪虚拟属性的模型更改
【发布时间】:2012-08-22 08:38:08
【问题描述】:

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

我怎样才能让它工作?

【问题讨论】:

    标签: ruby-on-rails-3 activemodel


    【解决方案1】:

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

    目前触发这个变化的方法是调用attribute_will_change! :attr_name

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2014-10-11
      • 1970-01-01
      相关资源
      最近更新 更多