对RoR表单中的嵌套资源感到困惑

时间:2011-03-10 02:26:47

标签: ruby-on-rails forms

我的目的是能够以一种形式编辑葡萄酒产品及其相关的奖项/评论。所以转到页面“http://mydomain.com/wines/cab-sauv/edit”显示我可以编辑名称,年份等的表格。它还将生成奖项和评论列表,以便我可以添加/删除/编辑每个奖项和评论。保存葡萄酒将自动保存/更新/删除奖项和评论。

我无法为嵌套对象生成表单(奖励和评论)。以下是我目前正在尝试做的修改示例:

<% form_for @wine do |w| %>
    Stock: <%= w.text_field :stock, :size => 12 %>
    <% @wine.awards.each do |awd| %>
        Award: <%= w.select ???, @medals %>
    <% end %>
<% end %>

在表单方面,我并没有真正获得嵌套资源。我在路线上还有什么需要做的吗?

2 个答案:

答案 0 :(得分:2)

试试这个

<% form_for @wine do |w| %>
   Stock: <%= w.text_field :stock, :size => 12 %>
   <% w.fields_for :awards do |awd| %>
     Award: <%= awd.select :awd_field_name, @medals %>
   <% end %>
 <% end %>

在文件app / models / wine.rb中,确保在某处调用此行,

accepts_nested_attributes_for :awards

您也可以阅读这个嵌套资源的优秀教程。 http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes。祝你好运!

答案 1 :(得分:0)