在Rails 2.3.5模型我使用使用:reject_if檢查空字段
accepts_nested_attributes_for :questions, :reject_if => lambda { |a| a[:content].blank? }
但其拒絕,如果有文本框不爲空.. 我怎樣才能使只有當它拒絕文本框中沒有輸入任何內容?
在Rails 2.3.5模型我使用使用:reject_if檢查空字段
accepts_nested_attributes_for :questions, :reject_if => lambda { |a| a[:content].blank? }
但其拒絕,如果有文本框不爲空.. 我怎樣才能使只有當它拒絕文本框中沒有輸入任何內容?
您是否將帶有記錄驗證的reject_if混淆?如果條件爲真,reject_if僅告訴應用程序忽略該嵌套屬性集。就你而言,如果問題的內容是空白的,問題的屬性將被忽略。如果您想驗證或確保問題記錄對於內容具有非空白值,那麼您將在您的問題模型中進行驗證。
您還可以考慮將lambda {}更改爲proc {}。
拒絕是否將保存父對象和任何其他數量的子對象只拒絕那些拒絕reject_if條件的子對象。如果這是你想要的,那麼它是好的,我建議調試一點點,放在打印聲明或東西,也許
lambda {| a |提出一個觀點;一[:內容] .blank? }
如果您希望整個嵌套對象一次保存全部,那麼使用驗證。
我不確定你在問什麼,但是你顯示的代碼會導致問題的屬性在問題內容爲空,零或空白時被忽略。這不是你在找什麼? – miked