0

Rails 2.3.5モデルで使用しています

accepts_nested_attributes_for :questions, :reject_if => lambda { |a| a[:content].blank? }

しかし、テキストボックスが空でない場合は拒否します..テキストボックスに何も入力されていない場合にのみ拒否するにはどうすればよいですか?

4

2 に答える 2

1

reject if は、reject_if 条件に失敗したオブジェクトのみを拒否して、親オブジェクトとその他の量の子オブジェクトを保存します。これがあなたが望むものなら、それでいいのです。少しデバッグすることをお勧めします。印刷ステートメントか何かを入れてください。多分

ラムダ { |a| a.inspect; を置きます。a[:content].blank? }

ネストされたオブジェクト全体を一度に保存する場合は、検証を使用します。

于 2012-06-07T16:36:05.940 に答える
1

reject_if とレコードの検証を混同していませんか? reject_if は、条件が true の場合にネストされた属性のセットを無視するようにアプリに指示するだけです。あなたの場合、質問の内容が空白の場合、質問の属性は無視されます。質問レコードのコンテンツの値が空白でないことを検証または確認したい場合は、質問モデルに検証を入れます。

lambda{} を proc{} に変更することも検討してください。

于 2012-06-07T13:50:08.270 に答える