Rails模型字段不更新到数据库

使用的模型

class Car < ActiveRecord::Base attr_accessor :model,:edition attr_accessible :model,:edition has_many :wheels end class Wheel < ActiveRecord::Base attr_accessor :type,:tubeless attr_accessible :type,:tubeless belongs_to :car end 

创建操作

 irb(main):009:0> bnz = Car.create :model=>"BENZ" , :edition=>2011 => # 

问题:以上创建记录成功但我的:model和:edition值未发送到数据库。 只有id,created_at,updated_at值才会在数据库中创建。

更新操作

 irb(main):010:0> fifth = Car.find(5) irb(main):011:0> fifth.update_attributes(:edition=>2011, :model=>"BENZ") => true irb(main):012:0> fifth.update_attributes!(:edition=>2011, :model=>"BENZ") => true irb(main):013:0> fifth.update_attributes!(:edition=>2012, :model=>"BENZ") => true irb(main):014:0> 

问题:这里什么都没发生。 在developement.log中,只触发select语句,不触发update语句

我正在使用sqlite db。 使用sqlite manager firefox addon来查看db表。 铁路新手,感谢您的帮助。

您不应该使用attr_accessor ,因为它定义了虚拟属性,覆盖了字段的setter用途。 从你的模型中删除那些使用它的行,它应该没问题。