[英]Devise: Allow admins to edit other users - Rails
我正在嘗試允許管理員用戶在Devise中編輯其他用戶,但是當我嘗試訪問另一個用戶的編輯頁面時(例如/ users / 1 / edit),我收到以下消息:
Unknown action
Could not find devise mapping for path "/users/1/edit"
似乎有效的唯一路徑是/ users / edit,它顯示當前用戶的編輯頁面。
在我的路線文件中,我有:
devise_for :users, :controllers => { :registrations => 'users' }
resources :users
有任何想法嗎? 謝謝!
我也必須這樣做,而且它目前還不是設計的。 由於最受歡迎的答案有一個死鏈接,我以為我會在這里發布我的解決方案。
您需要創建一個UsersController並自己構建表單和控制器,但是您還需要隔離設計設置的UsersController。 為此,請在routes.rb
文件中修改您的devise_for :users
調用
devise_for :users, :path_prefix => 'd' # routes for devise modules on User
resources :users # custom admin-type CRUD for users
這會將所有默認設計處理的路由更改為/ d / users / ...並讓您擁有/ users / ...路徑,以便您以管理員身份管理用戶。
我已經做了你想要做的事情,你的路線看起來正確。
您還需要創建一個UsersController來處理您要對用戶執行的所有CRUD操作。 這與Devise是分開的。
當您的UsersController存在時,如果current_user不是管理員,則只允許管理員用戶通過重定向(可能在之前的過濾器中)來訪問特定操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.