2012-06-07 71 views
0

在Rails 2.3.5模型我使用使用:reject_if檢查空字段

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

但其拒絕,如果有文本框不爲空.. 我怎樣才能使只有當它拒絕文本框中沒有輸入任何內容?

+0

我不確定你在問什麼,但是你顯示的代碼會導致問題的屬性在問題內容爲空,零或空白時被忽略。這不是你在找什麼? – miked

回答

1

您是否將帶有記錄驗證的reject_if混淆?如果條件爲真,reject_if僅告訴應用程序忽略該嵌套屬性集。就你而言,如果問題的內容是空白的,問題的屬性將被忽略。如果您想驗證或確保問題記錄對於內容具有非空白值,那麼您將在您的問題模型中進行驗證。

您還可以考慮將lambda {}更改爲proc {}。

1

拒絕是否將保存父對象和任何其他數量的子對象只拒絕那些拒絕reject_if條件的子對象。如果這是你想要的,那麼它是好的,我建議調試一點點,放在打印聲明或東西,也許

lambda {| a |提出一個觀點;一[:內容] .blank? }

如果您希望整個嵌套對象一次保存全部,那麼使用驗證。