2010-05-15 64 views
1

我有一個基本的has_many通過關係進入第二個相關的模型:HOWTO:在嵌套屬性建設者塊

class Foo < ActiveRecord::Base 
    has_many :bars, :dependent => :destroy 
    has_many :wtfs :through => :bars 

    accepts_nested_attributes_for :bars, :wtfs 
end 

在我的CRUD的形式我對跆拳道建設者塊,但我需要的標籤來自酒吧(例如稱爲標籤的屬性)。什麼是適當的方法來做到這一點?

這是最簡單的支架:

<h1>New foo</h1> 

<% form_for(@foo) do |f| %> 
    <%= f.error_messages %> 

    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 

    <h2>Bars</h2> 
    <% f.fields_for :wtfs do |builder| %> 
    <%= builder.hidden_field :bar_id %> 
    <p> 
    <%= builder.text_field :wtf_data_i_need_to_set %> 
    </p> 
    <% end %> 

    <p> 
    <%= f.submit 'Create' %> 
    </p> 
<% end %> 

<%= link_to 'Back', foos_path %> 

回答

1

答案在分析如何FormBuilder工作軌道中。所以在上面的例子中,我需要訪問實際的wtf對象,這樣我就可以獲得一個屬性吧,我需要執行以下操作:

<h2>Bars</h2> 
    <% f.fields_for :wtfs do |builder| %> 
    <%= builder.hidden_field :bar_id %> 
    <p> 
    <%= builder.label builder.object.bar.data_i_need_for_a_label %> 
    <%= builder.text_field :wtf_data_i_need_to_set %> 
    </p> 
    <% end %>