2013-03-25 48 views
2

我在我的rails應用中添加了一個額外的路由到我這樣的嵌套資源。「rake routes」中顯示的路由沒有路由

resources :questions do 
    resources :answers do 

     match "/bestanswer", :to => "answers#bestanswer", :via => :post 

     end 
    end 

運行「耙路線」示出以下路徑

question_answer_bestanswer POST /questions/:question_id/answers/:answer_id/bestanswer(.:format) answers#bestanswer 

我試圖使用的形式的路徑(其被重複許多次,每次回答)這樣

<%= form_tag question_answer_bestanswer_path, method: :post do%> 
    <%= hidden_field_tag :answer_id, answer.id %> 
    <%= hidden_field_tag :question_id, answer.question.id %> 
    <%= submit_tag "Accept this answer as the best answer", :class => 'btn ' %> 
<% end %> 

但是,當我轉到顯示此窗體的頁面時,出現此錯誤

No route matches {:controller=>"answers", :action=>"bestanswer"} 

你能解釋我做錯了什麼嗎?

+0

您沒有提供任何問題或解答。 – 2013-03-25 02:40:19

回答

1

你缺少路由參數,您的形式應該是:

<%= form_tag question_answer_bestanswer_path(answer.question, answer), method: :post do%> 
    <%= submit_tag "Accept this answer as the best answer", :class => 'btn ' %> 
<% end %> 

而且hidden_field_tag的是沒有必要的。

相關問題