Rails嵌套表单:仅在提供名称时保存子项

时间:2014-08-27 06:48:13

标签: ruby-on-rails

我的表单可让您创建一个"孩子"通过输入该孩子的名字,与父母在同一表格上。

如果提供了名称,我只想保存子记录。换句话说,我不想保存一个空白名字的孩子。如果提供了名称,我只想创建子对象。

这样做的好方法是什么?

1 个答案:

答案 0 :(得分:1)

根据docs

  

<强>:reject_if

     

允许您指定指向方法的Proc或Symbol   检查是否应为某个属性哈希构建记录。   散列传递给提供的Proc或方法,它应该   返回true或false。当no:reject_if被指定时,一条记录   将为没有_destroy的所有属性哈希构建   计算结果为true的值。传递:all_blank而不是Proc   将创建一个proc,它将拒绝所有属性的记录   是空白的,不包括_destroy的任何值。

所以,我们需要:

class Parent&lt;的ActiveRecord ::基

  has_many :kids

  accepts_nested_attributes_for :kids, :reject_if => proc { |attributes| attributes[:name].blank? }

end