2012-09-11 163 views
0

下面的路徑拋出了一個錯誤:的Rails:嵌套資源

= 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 

謝謝!

編輯 耙路線沒有顯示任何特別有用的東西。僅有的兩條線路與用戶有:

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

你可以在你的終端中執行'rake routes'並顯示你結果呢? –

+0

是的,我現在更新了我的問題。 – Karan

回答

1

您需要的路由文件中定義資源的用戶,如下所示

resources :users do 
resources :subscribers 
end 

這將創建所需的路徑幫手您的資源

對於淺你可以使用的路線

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

我希望我的路線很淺。我想我必須在這裏定義淺層? – Karan

+0

這似乎定義了像new_subscriber GET /訂戶/新(。:格式)訂戶#新 - 這可能是我不會感興趣,因爲我正在尋找嵌套的路線... – Karan

+0

這將創建嵌套的路線,你可以通過傳遞:shallow => true來創建淺層路由。看看這個http://archives.ryandaigle.com/articles/2008/9/7/what-s-new-in-edge-rails-shallow-routes –