2012-09-11 2 views
0

:레일 : 중첩 된 자원을 다음 경로에 오류를 발생

= link_to 'Subscribers', user_subscribers_path(current_user) 

undefined method `user_subscribers_path' for <#:0x007f9b240b3148>

나는 이유를 모르겠습니다.

resources :users, :only => [:show, :index], :has_many => :subscribers, :shallow => true 

감사를 다음과 같이

나는 나의 경로를 정의!

편집 레이크 경로는 특히 유용하지 않습니다. 가입자 단 두 줄은 다음과 같습니다

resources :users do 
resources :subscribers 
end 

을 다음과 같이

users GET /users(.:format)    users#index {:has_many=>:subscribers} 
user GET /users/:id(.:format)   users#show {:has_many=>:subscribers} 
+0

터미널에서'레이크 루트 '를 수행 할 수 있습니까? 그 결과? –

+0

예, 지금 제 질문을 업데이트했습니다. – Karan

답변

1

당신은이 얕은을 위해 자원

을 위해 필요한 경로 도우미를 만듭니다 루트 파일에 자원 가입자를 정의해야 사용할 수있는 경로

map.resources :users, :shallow => true do |user| 
    user.resources :subscribers 
end 
+0

경로를 얕게하고 싶습니다. 나는 여기 얕은 정의를 정의해야 할 것 같아요? – Karan

+0

그리고 new_subscriber GET/subscribers/new (. : format) 가입자와 같은 경로를 정의하는 것 같습니다. # new - 중첩 된 경로를 찾고 있기 때문에 관심이없는 것 같습니다. – Karan

+0

중첩 된 경로를 만들 것입니다. shallow => true를 전달하여 얕은 경로를 만들 수 있습니다. 이것 좀 봐 http://archives.ryandaigle.com/articles/2008/9/7/what-s-new-in-edge-rails-shallow-routes –