属性未更新

时间:2013-06-01 19:06:26

标签: ruby-on-rails ruby activerecord

模型

class Pm < ActiveRecord::Base
  attr_accessor :name
end

控制台

me = Pm.new
  #=> <Pm id: nil, name: nil, created_at: nil, updated_at: nil>
me.name = "Josh"
  #=> "Josh"
me.save
  #=>(0.4ms)  BEGIN
  #=> true
  #=> SQL (0.8ms)  INSERT INTO "pms" ("created_at", "name", "updated_at") VALUES ($1, $2, $3) RETURNING "id"  [["created_at", Sat, 01 Jun 2013 19:02:27 UTC +00:00], ["name", nil], ["updated_at", Sat, 01 Jun 2013 19:02:27 UTC +00:00]]
  #=>(1.3ms)  COMMIT
me
  #=> <Pm id: 4, name: nil, created_at: "2013-06-01 19:02:27", updated_at: "2013-06-01 19:02:27">

我有一个定义了name属性和attr_accessor的模型。记录保存但不更新name属性。我在这里错过了一些简单的东西吗?

1 个答案:

答案 0 :(得分:1)

如果您的Pmp模型(“Pimp”?“Pump”?“Pimple”?)有一个名为“name”的数据库字段,则没有理由使用attr_accessor :name。使用attr_accessor :name,永远不会调用ActiveRecord的动态生成的属性方法,是的,这意味着该属性不会保存到数据库中。