Я использую стероиды acts_as_taggable_on, и у меня возникла проблема с этим фрагментом кода, который генерирует ссылку на тег:
<%= link_to tag, tag_path(:id => tag.name) %>
при доступе к URL:
http://localhost:3000/tags/rails
Я получаю ошибку:
No action responded to rails. Actions: show
Однако этот URL работает:
http://localhost:3000/tags/show/rails
Я определил действие show в моем tags_controller.rb
class TagsController < ApplicationController
def show
@stories = Story.find_tagged_with(params[:id])
end
end
У меня есть следующие маршруты, сгенерированные rake: маршруты:
tags GET /tags(.:format) {:controller=>"tags", :action=>"index"}
POST /tags(.:format) {:controller=>"tags", :action=>"create"}
new_tag GET /tags/new(.:format) {:controller=>"tags", :action=>"new"}
edit_tag GET /tags/:id/edit(.:format) {:controller=>"tags", :action=>"edit"}
tag GET /tags/:id(.:format) {:controller=>"tags", :action=>"show"}
PUT /tags/:id(.:format) {:controller=>"tags", :action=>"update"}
DELETE /tags/:id(.:format) {:controller=>"tags", :action=>"destroy"}
так что я знаю, что теги URL / rails указывают на теги маршрута /: id, и я предоставил дополнительный параметр link_to, чтобы назначить имя тега как параметр: id, но, как вы можете видеть, это не работает , Форум предложил мне использовать to_param, но у меня нет модели тегов, а книга предложена против этого. Я что-то упустил?
Я слежу за книгой Sitepoint Simply Rails 2
РЕДАКТИРОВАТЬ: добавлен рабочий URL, см. Топ