2011-07-14 11 views
1

私はRails開発が初めてです。私は2つのモデルDecision and Choiceを持っています。すべての決定には2つの選択肢があり、決定が保存されるときに選択肢表に追加する必要があります。私はFormtasticを使ってRailsでこれを行う方法を理解しようとしていますが、私は壁に衝突しました。Rails 3のフォームで複数のモデルを使用するにはどうすればよいですか?

私はRailscastをネストしたフォームについて見て、Formtastic GitHubサイトのドキュメントに従っていましたが、私は迷っています。ここに私が持っているものがあります。

モデル:Decisions_Controllerで

class Decision < ActiveRecord::Base 
    attr_accessible :title, :description, :user_id, :choices_attributes 

    belongs_to :user 

    has_many :choices, :dependent => :destroy 

    accepts_nested_attributes_for :choices 
end 

class Choice < ActiveRecord::Base 
    belongs_to :decision 
end 

def new 
    @decision = Decision.new 
    2.times do 
     @decision.choices.build 
    end 
    end 

決定/新しいビュー:

<% semantic_form_for @decision do |form| %> 
    <%= form.inputs :title, :description %> 
    <%= form.inputs :summary, :for => :choice %> 
    <%= form.buttons %> 
<% end %> 

は、私は何を取得するタイトル、説明のためのフォームフィールドで、 1つの要約(選択のため)。 2番目の選択肢を表示して両方のフィールドを保存するにはどうすればよいですか?

+0

@ decision.choicesでループするのはどうですか? @ decision.choices.eachのようなもの| choice | form.inputs:要約など – corroded

+0

このアプローチを使用すると、選択肢は送信時に保存されません。 –

+0

コントローラには何がありますか? – corroded

答えて

2

:for => :choiceの代わりに:for => :choicesを使用してください。これは参照するリレーションの名前です。

<%= semantic_form_for(@decision) do |form| %> 
    <%= form.inputs :title, :description %> 
    <%= form.inputs :summary, :for => :choices %> 
    <%= form.buttons %> 
<% end %> 
+1

ねえ、いいキャッチ!私は少し恥ずかしいですが、これは私たち全員に起こります。助けてくれてありがとう。 –

関連する問題