这怎么可能?
Loading development environment (Rails 2.3.8)
>> wq = Wq.first(:conditions =>['widget_id=? AND qs_id=?',1,1])
=> #<Wq id: 1, widget_id: 1, qs_id: 1, operator: 0, requirements: "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2", changes: "1", route: 2, created_at: "2010-09-07 08:11:05", updated_at: "2010-11-24 10:25:53", body: "Which specific area of gyt are you aiming to addres...", options: "['xyz','pqr']", input_type: nil, status: 1>
>> wq.changes
=> {}
>> wq.changes
=> {}
>> wq.requirements
=> "2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2"
>> wq.changes
=> "1"
为什么wq.changes最初为null,然后在记录wq.requirements后,wq.changes似乎没问题?
正在获取的所有必要字段都在模型中包含attr_accessible。
我无法理解这种情况,请帮助所有的铁路大师。
答案 0 :(得分:2)
属性名称“更改”与AR :: Dirty功能冲突。您应该为该列选择一个不同的名称。
这是Dirty的rails3 api文档:
http://api.rubyonrails.org/classes/ActiveModel/Dirty.html
在rails2中,它位于ActiveRecord而不是ActiveModel。
如果您无法重命名该列,则可以通过调用@model_obj[:changes]
来解决此问题。
https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb#L1466