2011-03-10 6 views
0

私の意図は、ワイン製品とそれに関連する報奨/レビューを1つのフォームで編集できるようにすることです。だから、 "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

accepts_nested_attributes_for :awards 

あなたもネストされたリソースのために、この優れたチュートリアルを読むことができます、あなたはどこかにこの行を呼び出すことを確認し、ファイルアプリ/モデル/ wine.rbで、この代わりに

<% 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 %> 

をお試しください。 http://ryandaigle.com/articles/2009/2/1/what-s-new-in-edge-rails-nested-attributes。がんばろう!

+0

素晴らしいです!これに関連するもう1つの質問では、すべてのメダルタイプのリストを格納するDB集中型の方法は何でしょうか?私は現在、コントローラで「@medals = Medal.all」というクエリを実行しています... – JakeTheSnake

+0

メダル、賞品、ワインの関係を述べることはできますか? – RubyFanatic

+0

ワインには多くの賞があります...賞には1つのメダルがあり、ワインに属します...メダルには多くの賞があります – JakeTheSnake

関連する問題