2017-01-05 1 views
1

私は最近Userテーブルにtime_zoneプロパティを追加しましたが、ユーザー作成時にタイムゾーンを挿入しようとしていますが、プロパティは完全に無視されていますactiverecords 'create'はオブジェクトプロパティを無視しています

user = User.create(:username => user[:username], 
         :name => user[:username], 
         :email => user[:email], 
         :time_zone => user[:time_zone], 
         :password => user[:password], 
         :password_confirmation => user[:password]) 

私はログをチェックし、生成されたinsert文にはtime_zone以外のものが含まれています...なぜですか?

time_zoneにデフォルト値が設定されている可能性がありますか?これは理にかなっていないだろうが...

おかげ

+0

レールのバージョンによって、strong_parametersにホワイトリストを表示する必要があるかどうかを確認します。 – Mark

+0

@Mark how?それは変だけど、私は作成の代わりに新しいものを使ってみましたし、それが存在しないかのようにプロパティをスキップするだけです。 – Walker

+0

これは単なるアイデアでした。私はそれがstrong_parametersの問題かもしれないと思った。あなたが使用しているレールのバージョンは何ですか?私の注意を喚起したもう一つのことは、テーブルにプロパティを追加したと書いたことです。これはマイグレーションやデータベース内で直接行っていますか?直接のRailsがこのフィールドについて知りません。 'User.new'の出力は' time_zone'フィールドを含んでいますか? – Mark

答えて

1

作成プロパティが挿入されていたものをデフォルト値と同じだったので...無視されていました

私は、ユーザーを挿入試験したとき、デフォルトのtime_zoneとは異なるtime_zoneで記録すると、実際にその新しいtime_zoneで挿入文が生成されました....

レールがこの良かったかどうかわかりませんでした!

関連する問題