2012-12-11 31 views
0

我要創建一組字段的在我activties/_form.html.erb嵌套字段創建一個新的紀錄belongs_to的

一旦我有形式的工作,我打算展示一下一個當窗體創建一個新的位置在選擇位置選擇框中添加另一個位置按鈕或附加選項。

到目前爲止故事:

_form.html.erb

<%= f.fields_for :location do |builder| %> 
<%= render 'location_fields', :f => builder %> 
<%= builder.hidden_field :provider_id, :value => @provider.id %> 
<% end %> 

activity.rb

attr_accessible :name, :price, :location, :location_attributes 
accepts_nested_attributes_for :location 

的問題是,這一切工作有點太清楚。編輯活動記錄時,位置字段會預先填充相關的位置記錄。

我應該如何創建一個空白表單,以便始終創建一個新的位置並與該活動關聯?

回答

0

您需要創建一個沒有現有數據的「新」位置。這將被這個表單使用。

例如: 在你的控制器

@new_location = Location.new 

你可以調用部分與此位置對象。

您在現場看到的位置可能是與該活動相關的位置。這取決於你的控制器中有什麼。

您也可以嘗試嵌套的屬性:

@activity.location.build 

然後在您的視圖做:

<%= f.fields_for :location do |builder| %> 
    <%= builder.label :name %><br/> 
    <%= builder.text_field :name %> 
<% end %> 
+0

感謝。例如?你的答案是否被切斷? – Will

+0

啊,是的,我嘗試過。然後在視圖中:<%= f.fields_for @new_location do | builder | %>但我得到位置(#2192237980)預計,得到ActiveSupport :: HashWithIndifferentAccess – Will

+0

查看更新的答案不同的方式來嘗試它。 –