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ます。これは、ルートTagの場合、次のようになることを意味します:showuser_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 に答える