在Rails 2.3.5模型中我正在使用
accepts_nested_attributes_for :questions, :reject_if => lambda { |a| a[:content].blank? }
但如果有文本框则拒绝它不是空的.. 只有在文本框中没有输入任何内容时,如何才能拒绝它?
答案 0 :(得分:1)
您是否将reject_if与记录验证混淆?如果条件为真,则reject_if仅告诉应用程序忽略该组嵌套属性。在您的情况下,如果问题的内容为空,则将忽略问题的属性。如果要验证或以其他方式确保问题记录的内容具有非空白值,则需要在问题模型中进行验证。
您也可以考虑将lambda {}更改为proc {}。
答案 1 :(得分:1)
拒绝if将保存父对象和任何其他数量的子对象,仅拒绝那些未通过reject_if条件的对象。如果这是你想要的那么它很好,我建议调试一下,放入打印声明或其他东西,也许
lambda {| a |把观点放在一边一[:含量] .blank? }
如果希望整个嵌套对象一次保存,则使用验证。