link_to
コントローラーでメソッドを呼び出すために使用したいと考えています。ただし、何らかの奇妙な理由で、ルートはshow
メソッドを探します。
私からしてみれば:
<% @beverages.each do |beverage| %>
..
<%= link_to 'Archive', beverages_archive_path(:id => beverage.id) %>
..
<% end %>
私のconfig/routes.rbで
match 'beverages/archive' => 'beverages#archive'
私の飲料_コントローラ.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=archive の Beverage が見つかりませんでした): app/controllers/beverages_controller.rb:46:in `show'
私が間違っていることについて何か考えはありますか?あなたの助けは大歓迎です!
PS。Rails 3 link_to delete destory method calls show method?も調べました。 しかし、何も機能していないようでした。