2013-07-09 16 views
8

私はUserモデルの属性をいくつか持っていますが、それはfoobarとなります。だから私のモデルは次のようになります。私はRailsのコンソールに移動して行う場合は、Rails 4:ActiveRecordは属性を保存せず、デフォルト値を保存します

INSERT INTO "users" DEFAULT VALUES RETURNING "id" 

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

そして、私の開発ログショー:私は次の操作を行いその後

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

User.first私は次のような感じになります:

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

私はPostgresを使用していますが、他のモデルをデータベースに保存するのに問題はありません。なぜ私のUserモデルはデフォルト値を保存していますか?

答えて

26

attr_accessorは、rails属性をオーバーライドしています。それを削除してください、それは動作するはずです。

+1

ポストリスに固有です。なぜ誰が知っていますか? –

+0

私はPostgresがなぜ問題なのかを知りたいです。 –

関連する問題