我試圖編輯模型的嵌套屬性,多爲輪廓here,在這裏複製:Rails的嵌套屬性不會插入正確的ID
<%= form_for @person do |person_form| %>
<%= person_form.text_field :name %>
<% for address in @person.addresses %>
<%= person_form.fields_for address, :index => address do |address_form|%>
<%= address_form.text_field :city %>
<% end %>
<% end %>
<% end %>
在我的代碼,我有以下幾點:
<%= form_for(@meal) do |f| %>
<!-- some other stuff that's irrelevant... -->
<% for subitem in @meal.meal_line_items %>
<!-- # Edit 2: I need to display information here about the subitem
Which I can't find a way to pass it to the partial, or work in
this manner for existing items
-->
<%= subitem.food.name %>
<%= subitem.food.calories %>
<%= f.fields_for subitem, :index => subitem do |line_item_form| %>
<%= line_item_form.label :servings %><br/>
<%= line_item_form.text_field :servings %><br/>
<%= line_item_form.label :food_id %><br/>
<%= line_item_form.text_field :food_id %><br/>
<% end %>
<% end %>
<%= f.submit %>
<% end %>
這很好,除了當我查看HTML時,它創建的輸入如下所示,未能輸入正確的ID,而是放置模型的內存表示(?)。其結果是,更新失敗:
<input type="text" value="2" size="30" name="meal[meal_line_item][#<MealLineItem:0x00000005c5d618>][servings]" id="meal_meal_line_item_#<MealLineItem:0x00000005c5d618>_servings">
編輯: 我試圖做到這一點在這種方法的原因是,我需要收集現有meal_line_items協會的一些信息。例如,在我拿出區域內代碼的,我有一些代碼的效果:
<%= subitem.food.name %>
<%= subitem.food.calories %>
獲取此信息,如果我使用的形式建設者的諧音,至少,沒有將無法正常工作我的試煉。
編輯2:* 請參閱代碼中的編輯。這裏是我的MealLineItem
class MealLineItem < ActiveRecord::Base
# Associations ---------------------
belongs_to :food
belongs_to :meal
end
併爲模型的用餐accep_nested_attributes。正如你可以看到它屬於食物和膳食模型。對於現有meal_line_item我需要做的是這樣的:
meal_line_item.food.name
我錯過複製F。當複製代碼從嘗試不同的東西:( – MunkiPhD 2011-01-05 12:30:47
好吧,所以它沒有解決問題? – Heikki 2011-01-05 12:31:47
沒有。作爲參考,沒有f。輸入本質上並沒有說明他們是'餐'的一部分,並且以下面的id結尾:__mealLineItem:0x00000005c5d618> _servings – MunkiPhD 2011-01-05 12:47:22