Основные вложенные ресурсы
Я вкладываю ресурсы вот так:
resources :users do
resources :tags
end
И на моей странице индекса тегов я хочу сделать ссылку на страницу одного тега, поэтому я делаю так:
<%= link_to 'Show', user_tag_path(@user.id) %>
В моем контроллере я передаю зарегистрированный идентификатор пользователя:
@user = current_user
К сожалению, я получаю следующую ошибку:
No route matches {:action=>"show", :controller=>"tags", :user_id=>1}
Что я здесь не так делаю?
1 ответ
Tag
ресурс зависит от конкретного User
ресурс. Это значит для Tag
"s :show
маршрут user_tag
это выглядит так
user_tag GET /users/:user_id/tags/:id(.:format) tags#show
Вам нужно указать как User
и Tag
на этом маршруте, как
user_tag_path(@user, @some_tag_here)
Тем не менее, вы говорите,
Я хочу дать ссылку на страницу с одним тегом
который плохо сформулирован. Я предполагаю, что под этим вы подразумеваете ссылку на :index
маршрут для Tag
специфично для некоторых User
resourece. Не существует "страницы с одним тегом", определенной как /tags
,
:index
маршрут выглядит так
user_tags GET /users/:user_id/tags(.:format) tags#index
и используется как
user_tags_path(@user)