0

我正在嵌套这样的资源:

resources :users do
  resources :tags
end

在我的标签索引页面中,我想链接到单个标签页面,所以我这样做:

<%= link_to 'Show', user_tag_path(@user.id) %>

在我的控制器中,我传递了当前登录的用户 ID:

@user = current_user

不幸的是,我收到以下错误:

No route matches {:action=>"show", :controller=>"tags", :user_id=>1}

我在这里做错了什么?

4

1 回答 1

1

Tag资源依赖于特定User资源。这意味着对于 aTag:show路线user_tag,它看起来像这样

user_tag GET  /users/:user_id/tags/:id(.:format)  tags#show

您需要在此路线上同时指定 aUser和 a ,例如Tag

user_tag_path(@user, @some_tag_here)

然而,你说

我想链接到单标签页面

措辞不好。我假设您的意思是您要链接到特定于某些资源的:index路线。没有像.TagUser/tags

路线:index看起来像

  user_tags GET  /users/:user_id/tags(.:format)  tags#index

并被用作

user_tags_path(@user)
于 2013-06-08T01:54:25.437 回答