簡體   English   中英

設計:允許管理員編輯其他用戶 - Rails

[英]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 / ...路徑,以便您以管理員身份管理用戶。

Devise也在他們的wiki中解決了這個問題

設計是偉大的用戶身份驗證 ,但它具有內置的用於管理用戶的支持。 所以你必須自己構建它。

這是一個如何做到這一點的例子 這個例子有幾個月了,但它應該指向正確的方向。

我已經做了你想要做的事情,你的路線看起來正確。

您還需要創建一個UsersController來處理您要對用戶執行的所有CRUD操作。 這與Devise是分開的。

當您的UsersController存在時,如果current_user不是管理員,則只允許管理員用戶通過重定向(可能在之前的過濾器中)來訪問特定操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM