我真的試着用以下的博客和評論從紅寶石指南的例子(嵌套路線一的form_for http://guides.rubyonrails.org/getting_started.html#adding-a-route-換註釋)。Rails 3條中的form_for嵌套路線
我真的做一個應用程序有很多這類問題的創建調查,問題是一組中,並且每個問題都有答案的一個O更多的選擇。
這是reoutes.rb
resources :groups do
resources :questions do
resource :answers
end
end
的控制器都運行良好,當我表現出組創建那裏可以看到THES問題,並創建一個嵌套的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 />
現在我需要顯示的答案和一些方法來插入ANW那個問題。使用q.answers.each在@ group.questions.each塊中顯示答案的效果很好。但是,我所要做的就是做出回答一個的form_for,我試過代碼波紋管,但does`nt工作:
組/ 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的給出了一個錯誤:
undefined method `question_answers_path'
當我嘗試使用form_for([q,q.answers.build])。
任何幫助?
偉大的德文!現在它的工作,爲答覆。這個示例的正確語法是:** form_for([@ group,q,q.answers.build])** – Alex 2011-06-03 13:53:44
沒問題,很高興聽到您已經完成所有工作。 – 2011-06-03 20:26:17