2017-09-16 42 views
0

我有一個模型,我想在管理界面中管理User。 管理界面路線看起來像Rails admin命名空間中的非管理模型的自動命名空間url

namespace :admin do 
    resources :users 
end 

當我創建像link_to 'Show', @user視圖的鏈接時,我得到的 錯誤undefined method 'user_path'

如何自動擁有該URL轉成admin_user_path(即/admin/users/:id 代替/users/:id

目前我有做這個無處不(索引視圖,顯示查看,編輯,形成網址等): link_to 'Show', admin_user_url(@user)

回答

0

要鏈接到命名空間的路線傳遞數組:

link_to 'Show', [:admin, @user] 

如果你不是想要的是巢聯合國航線明鏡/admin不添加管理員前綴的路由助手使用scope代替namespace

scope :admin, module: :admin do 
    resources :users 
end 

Prefix Verb URI Pattern      Controller#Action 
    users GET /admin/users(.:format)   admin/users#index 
      POST /admin/users(.:format)   admin/users#create 
new_user GET /admin/users/new(.:format)  admin/users#new 
edit_user GET /admin/users/:id/edit(.:format) admin/users#edit 
    user GET /admin/users/:id(.:format)  admin/users#show 
      PATCH /admin/users/:id(.:format)  admin/users#update 
      PUT /admin/users/:id(.:format)  admin/users#update 
      DELETE /admin/users/:id(.:format)  admin/users#destroy 

這將使意義,如果你只有/admin/users的路線,而不是一個/users路線的代表資源不同 - 在這種情況下,使用link_to 'Show', [:admin, @user]來消除歧義。