Ruby ガイド (http://guides.rubyonrails.org/getting_started.html#adding-a-route-for-comments) のブログとコメントの例に従って、ネストされたルートで form_for を実行しようとしています。
多くの種類の質問を含む調査を作成するアプリケーションを実行しています。質問はグループにあり、各質問には 1 つ以上の回答オプションがあります。
これはreoutes.rbです
resources :groups do
resources :questions do
resource :answers
end
end
コントローラーはうまく機能しており、作成されたグループを表示すると、質問が表示され、ネストされた form_for で質問が作成される可能性があります。
グループ/show.html.erb
<h2>Group: <%= @group.desc %> </h2>
<h3>Questions</h3>
<% @group.questions.each do |q| %>
<%= q.desc%> <%= link_to 'Destroy question', [@group, q], :confirm => 'Are you sure?', :method => :delete %> <br/>
<%end%>
<h4>New question</h4>
<%= form_for([@group, @group.questions.build]) do |f| %>
<div class="field">
<%= f.label 'Label: '%>
<%= f.text_field :desc, :size => 100%>
<%= f.submit 'Create question' %>
</div>
<% end %>
<br />
次に、答えと、その質問に答えを挿入する方法を示す必要があります。回答を表示するには、 @group.questions.each ブロック内の q.answers.each を使用するとうまくいきます。しかし、私がしなければならないことは、回答のために form_for を作成することです。次のコードを試しましたが、動作しません:
グループ/show.html.erb
...
<% @group.questions.each do |q| %>
<%= q.desc%> <%= link_to 'Destroy question', [@group, q], :confirm => 'Are you sure?', :method => :delete %> <br/>
<!-- New answer -->
<%= form_for([q, q.answers.build]) do |f| %>
<div class="field">
<%= f.label 'Label: '%>
<%= f.text_field :desc, :size => 100%>
<%= f.submit 'Create answer' %>
</div>
<% end %>
<%end%>
<h4> New question<h4>
...
Railsはエラーを出します:
未定義のメソッド `question_answers_path'
form_for([q, q.answers.build]) を使用しようとすると。
何か助けはありますか?