2012-04-01 62 views
1

在我的routes.rb文件,我唯一的條目是:Rails 3 +設計 - 如何獲取嵌套的資源/路線工作?

devise_for :users, :path => "accounts" 

resources :users do 
    resource :profile 
end 

但是當我運行「耙路線:」我可以看到,仍然有映射資源的使用者,如新,創建,編輯,更新等等......這是導致與一些色器件路徑的衝突,如new_user_registration_path

 new_user_session GET /accounts/sign_in(.:format)   devise/sessions#new 
      user_session POST /accounts/sign_in(.:format)   devise/sessions#create 
    destroy_user_session DELETE /accounts/sign_out(.:format)   devise/sessions#destroy 
      user_password POST /accounts/password(.:format)   devise/passwords#create 
     new_user_password GET /accounts/password/new(.:format)  devise/passwords#new 
     edit_user_password GET /accounts/password/edit(.:format)  devise/passwords#edit 
         PUT /accounts/password(.:format)   devise/passwords#update 
cancel_user_registration GET /accounts/cancel(.:format)    devise/registrations#cancel 
     user_registration POST /accounts(.:format)     devise/registrations#create 
    new_user_registration GET /accounts/sign_up(.:format)   devise/registrations#new 
    edit_user_registration GET /accounts/edit(.:format)    devise/registrations#edit 
         PUT /accounts(.:format)     devise/registrations#update 
         DELETE /accounts(.:format)     devise/registrations#destroy 
      user_profile POST /users/:user_id/profile(.:format)  profiles#create 
     new_user_profile GET /users/:user_id/profile/new(.:format) profiles#new 
     edit_user_profile GET /users/:user_id/profile/edit(.:format) profiles#edit 
         GET /users/:user_id/profile(.:format)  profiles#show 
         PUT /users/:user_id/profile(.:format)  profiles#update 
         DELETE /users/:user_id/profile(.:format)  profiles#destroy 
        users GET /users(.:format)      users#index 
         POST /users(.:format)      users#create 
       new_user GET /users/new(.:format)     users#new 
       edit_user GET /users/:id/edit(.:format)    users#edit 
        user GET /users/:id(.:format)     users#show 
         PUT /users/:id(.:format)     users#update 
         DELETE /users/:id(.:format)     users#destroy 

我怎樣才能擺脫這些出現在這個輸出底部的額外用戶資源?

回答

0

如果你只是想,說,索引和顯示,嘗試:

devise_for :users, :path => "accounts", :only => [:index, :show] do 
    resource :profile 
end 
+0

的問題是,我只希望爲用戶色器件創建的路線,現在他們是一組路線,通過色器件產生的,並另一套由「資源:用戶」創建。我如何保持設計路線和靜態地圖配置文件作爲嵌套資源? – Jason 2012-04-03 01:21:27

+0

我明白了。請嘗試更新我的代碼。 – 2012-04-04 02:41:29

+0

@Jason我有一個重複的路線相同的問題。你有沒有找到解決辦法? – lnreddy 2013-06-29 06:19:37

0

要做到這一點是定義你的設計(不嵌套)使用途徑的最好辦法「devise_for:」,然後在一個單獨的塊,執行

resources :users, :only => :none do 
    resource :profile 
end 

使用「:除了=>:所有」停止從被定義和覆蓋的設計途徑的任何非嵌套Users路線,但它仍然造成所有users/3/profile路線。然後加入:path => "accounts"更換users

所以,你的代碼看起來像

devise_for :users, :path => "accounts" 

resources :users , :path => "accounts", :only => :none do 
    resource :profile 
end