2016-09-04 8 views
0

名前と電子メールのみが検証される複数の列(:name、:bio、:email)を持つPerformersというモデルがあります。コンソールに入り、次のように入力します。オブジェクトの属性がnilとして保存される

p = Performer.new(name: "example", email: "[email protected]") 
p.save! 

オブジェクトはデータベースに保存されますが、すべての列の値はnilです。コンソールにエラーは報告されません。これは、私のアプリの主要なコンポーネントの1つが機能しないようにしています。どんな助けでも大歓迎です。

+0

あなたのモデルにいくつかの 'attr_accessor'がありますか?[この回答](http://stackoverflow.com/a/35660662/2483313)があなたにとって興味深いでしょうか?あなたのモデルを投稿してください。 – spickermann

答えて

0

私は私のembed.rbファイル内の不要なattr_accessorを削除することによってこの問題を解決することになりました。冗長attr_accessorを持つ属性に保存しようとすると、nil値だけになります。

0

Performerモデルにテスト目的の検証がないことを確認してください。

:name => 'SO' OR name: 'SO'

p = Performer.new(:name => "example", :email => "[email protected]") 
#OR 
p = Performer.new(name: "example", email: "[email protected]") 
p.save! 
+0

検証を削除しても役に立たなかった。また:name =はタイプミスでした。それはまだすべての無属性のオブジェクトを作成しています。 –

+0

@CharlosDesbiensは 'schema.rb'ファイルに' Performer'とモデルも投稿できます。また、このリンクを確認してくださいhttp://stackoverflow.com/questions/8731232/in-rails-why-would-saving-a-new-record-return-nil-and-nothing-gets-saved – 7urkm3n

関連する問題