如何使用Parent作为嵌套字段提交和保存Child表单?

时间:2011-03-28 13:52:49

标签: ruby-on-rails activerecord simple-form

假设您有以下Child类:

Child < AR
 belongs_to :parent
end

Parent班级相关联:

Parent < AR
 has_many :children
end

我想在ChildrenController的操作/视图中创建一个表单,允许用户创建新的Child和新的Parent(如果没有分配)我不是ParentsController,因为它与应用程序没有相同的相关性。)

我在new.haml.html视图中创建了一个简单的表单:

= simple_form @child do |c|
  c.input :field_for_child
  c.association :parent do |p|
    p.input :field_for_parent

结果是一个看起来像"child" => { "field_for_child" => "value1", "parent" => { "field_for_parent: => "value2" } }

的参数哈希

如何将“child”和“parent”保存在尽可能少的行中?

2 个答案:

答案 0 :(得分:0)

@child.parent_id = (params[:parent][:field_for_parent]) || Parent.create(...).id

那是我受过教育的猜测......哪里“(...)”将成为你新父母的论据

答案 1 :(得分:0)

你在模型中写

class Child < AR
  belongs_to :parent
  accepts_nested_attributes_for :parent
end

然后在控制器内部,你可以使用给定的属性保存孩子。