开发者

Strange problem with activerecord fetch/find with column name 'changes' in a RAILS 2.3.8 model

How is this possible?

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"

Why is wq.changes coming as null initially and then after logging wq.requirements, wq.c开发者_运维百科hanges seems to come fine?

All necessary fields that are being fetched are withing a attr_accessible in the model.

I am not able to understand this situation, please help all you rails gurus.


The attribute name 'changes' conflicts with the AR::Dirty functionality. You should probably pick a different name for that column.

Here's the rails3 api docs for Dirty:

http://api.rubyonrails.org/classes/ActiveModel/Dirty.html

In rails2 it's in ActiveRecord rather than ActiveModel.

If you aren't able to rename the column, you could work around the issue by calling @model_obj[:changes] instead.

https://github.com/rails/rails/blob/master/activerecord/lib/active_record/base.rb#L1466

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜