2011-03-10 38 views
0

我的意图是能够以一种形式编辑葡萄酒产品及其相关奖项/评论。所以去“http://mydomain.com/wines/cab-sauv/edit”这个页面展示了我可以编辑名字,年份等的形式。它还会生成奖励和评论列表,以便我可以添加/删除/编辑每个奖项和评论。保存葡萄酒将自动保存/更新/删除奖项和评论。对RoR表格中的嵌套资源感到困惑

我无法生成嵌套对象(奖励和评论)的表单。下面是什么,我现在试图做一个变形例:

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

我不是真的越来越嵌套的资源,当谈到形式。我还需要在路线上做些什么?

回答

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 /模型/ wine.rb,请确保您拨打这条线的地方,

accepts_nested_attributes_for :awards 

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

+0

好极了!在与此相关的另一个问题上,存储所有奖牌类型清单的DB密集度最低的方法是什么?我目前只是在控制器中做一个“@medals = Medal.all”查询... – JakeTheSnake

+0

你能说出奖章,奖励和葡萄酒之间的关系吗? – RubyFanatic

+0

葡萄酒有很多奖...奖项有一枚奖牌,属于酒...奖牌有很多奖项 – JakeTheSnake