嵌套表单和自动创建父,子

时间:2010-02-22 06:24:11

标签: ruby-on-rails forms nested

我想知道是否有可能使用rails嵌套表单创建新的父级,子级有很多关系。

Rails文档明确指出,这是一对一的关系。不确定它是否有相同之处。

例如:

如果

params = { 
  :employee => { 
    :name => "Tester", 
    :account_attributes => {:login => 'tester'}
  }
} 

作为一对一的关系。所以Employee.new(params)工作正常。新员工,帐户已创建。

假设我有

params = { 
  :employee => { 
    :name => "Tester", 
    :account_attributes => {
      "0" => {:login => 'tester'}, 
      "1" => {:login => 'tester2'}
    }
  }
} 

Employee.new(params)不起作用。儿童验证失败,说父母不能为空。

感谢任何帮助。感谢

卡伦

1 个答案:

答案 0 :(得分:2)

带有accepts_nested_attributes_for的child_attributes = writer在涉及一对多关系时需要一个数组。

这将为新员工创建两个帐户

params = { 
  :employee => { 
    :name => "Tester", 
    :account_attributes => [
     {:login => 'tester'}, 
     {:login => 'tester2'}
    ]
  }
}