2012-04-09 92 views
0

通常人们做出嵌套表格嵌套的地方属性被接受的对象“属于”的主要对象...向后嵌套形式?

例如:鉴于上述

class Brand < ActiveRecord::Base 
    has_many :models 
end 

class Model < ActiveRecord::Base 
    belongs_to :brand 
end 

因此,人们可能会期望能品牌的嵌套形式,它接受模型的嵌套属性。

这听起来很荒谬,但我想要做的是创建一个接受品牌嵌套属性的模型表单...这可能吗?

回答

0

是的,你可以。

class Brand < ActiveRecord::Base 
    has_many :models 
end 

class Model < ActiveRecord::Base 
    belongs_to :brand 
    accepts_nested_attributes_for :brands 
end 

考虑后做出

= form_for Model.new do |f| 
    %p 
    = f.label :name 
    = f.text_field :name 
    %p 
    Brands: 
    - 4.times do 
     = f.fields_for :brand, Brand.new do |bf| 
     = br.text_field :name 
    ... 

这种形式会产生这样的品牌PARAMS:

model: { 
    name: "Shiny Ann", 
    brands_attributes: { 
    "0": {name: "Brand1"}, 
    "1": {name: "Brand2"}, 
    "2": {name: "Brand3"} 
    } 
}