2013-06-08 3 views
0

내가 지금처럼 중첩 자원을 오전 : 기본 중첩 된 자원

resources :users do 
    resources :tags 
end 

그리고 내 태그 인덱스 페이지에서

, 나는 하나의 태그 페이지에 연결하려면, 그래서 내가 좋아하는 일을 오전 :

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

내 컨트롤러에서 나는 사용자 ID에 curretly 기록을 통과 해요 :

@user = current_user 

를 불행하게도, 나는 다음과 같은 오류를 받고 있어요 :

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

내가 뭘 잘못하고 있니?

답변

1

Tag 자원은 특정 User 자원에 따라 달라집니다. 이것은 Tag:show 경로 user_tag 수단, 그것은 모두 그러나

user_tag_path(@user, @some_tag_here) 

같은 User이 경로에 Tag는, 당신은

말을 당신은 지정해야이

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

처럼 보인다 가난하게 표현되어

I want to link to the single tag page

. 난 당신이 어떤 User resourece에 Tag, 특정의 :index 경로에 연결할 뜻이로 가정한다. /tags 같이 정의 된 "하나의 태그 페이지가"없다.

:index 경로는

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

처럼

user_tags_path(@user) 
+0

들으 같이 사용된다 보인다! 내가 @user = CURRENT_USER을 사용하는 경우이 완벽하게 작동합니다. (I 친화적 ID를 사용하고 있습니다) user_tag_path을 (tag.user.slug, tag.slug) : – alemur

+1

그리고 경우에 당신은 CURRENT_USER를 사용하지 않을, 내가 사용하여 작업을 얻었다 – alemur