我正在尝试按照 Ruby 指南中的博客和评论示例(http://guides.rubyonrails.org/getting_started.html#adding-a-route-for-comments)使用嵌套路由执行 form_for。
我正在做一个应用程序来创建带有很多问题的调查,这些问题都在一个组中,每个问题都有一个或多个答案选项。
这是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]) 时。
有什么帮助吗?