我正在尋找使用link_to
來調用我的控制器中的方法。然而,由於某種奇怪的原因,該路線尋找show
方法。Rails:link_to調用控制器中的自定義方法
筆者認爲:
<% @beverages.each do |beverage| %>
..
<%= link_to 'Archive', beverages_archive_path(:id => beverage.id) %>
..
<% end %>
在我的config/routes.rb中
match 'beverages/archive' => 'beverages#archive'
在我beverages_controller.rb
def archive
beverage = Beverage.find(params[:id])
respond_to do |format|
# format.html # show.html.erb
format.json { render json: beverage }
end
# beverage.update_attribute('archive', true)
end
當我點擊存檔鏈接查看,該URL確實更改爲:http://localhost:3000/beverages/archive?id=11
,但是我收到以下錯誤。
的錯誤,我得到: 的ActiveRecord :: RecordNotFound(無法使用id =檔案發現飲料): 應用程序/控制器/ beverages_controller.rb:46:在'秀」
任何我做錯了什麼想法?非常感謝您的幫助!
PS。我也看着Rails 3 link_to delete destory method calls show method? 但似乎沒有工作。
你能證明你的'routes.rb'?可能你在match line之上有'resources:beverages'這樣的東西? – dimuch
http:// stackoverflow的潛在重複。com/questions/3738573/link-to-action-create-going-to-index-rather-than-create – weltschmerz