2013-07-09 60 views
8

我有一个User模型有一些属性,称它们为foobar。所以,我的模式是这样的:Rails 4:ActiveRecord不保存任何属性,保存默认值

class User < ActiveRecord::Base 
    attr_accessor :foo, :bar 
end 

然后我执行以下操作:

user = User.new 
user.foo = "123" 
user.save! 

而且我的开发日志显示:

INSERT INTO "users" DEFAULT VALUES RETURNING "id" 

然后,如果我去到Rails的控制台和做User.first我得到类似于:

#<User id: 4, foo: nil, bar: nil> 

我正在使用Postgres,并且我无法将其他模型保存到数据库,为什么我的User模型保存默认值?

回答

26

attr_accessor正在覆盖rails属性。尝试删除它,它应该工作。

+1

这必须是postrges特定的。有谁知道为什么? –

+0

我想知道为什么Postgres是问题。 –