2012-04-09 90 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"} 
    } 
}