我的表单可让您创建一个"孩子"通过输入该孩子的名字,与父母在同一表格上。
如果提供了名称,我只想保存子记录。换句话说,我不想保存一个空白名字的孩子。如果提供了名称,我只想创建子对象。
这样做的好方法是什么?
答案 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