Я хочу использовать link_to
для вызова метода в моем контроллере. Однако по какой-то нечетной причине маршрут ищет метод show
.
На мой взгляд:
<% @beverages.each do |beverage| %>
..
<%= link_to 'Archive', beverages_archive_path(:id => beverage.id) %>
..
<% end %>
В моей конфигурации /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 = archive): app/controllers/beverages_controller.rb: 46: в `show '
Любая идея о том, что я делаю неправильно? Ваша помощь очень ценится!
PS. Я также посмотрел на Rails 3 link_to удалить метод вызова метода вызова метод show? но ничего не работало.