【发布时间】:2016-02-23 16:53:33
【问题描述】:
我在我的 Ruby on Rails 项目中使用 devise,并且用户有一个管理员属性:
schema.rb:
create_table "users", force: :cascade do |t|
.
t.boolean "admin", default: false
end
我希望管理员用户可以编辑其他用户。我不是第一个提出这个问题的人,但所有给出的答案都缺乏明确的说明:
- 在 2011 年的设计 wiki 中有一个条目:https://github.com/plataformatec/devise/wiki/How-To%3a-Manage-users-through-a-CRUD-interface
但我不明白我需要做什么:它在路线中提到"devise_for :users, :path_prefix => 'my'",但我的路线中没有。然后,它提到,我需要如何删除 params 哈希的密码密钥,但我的 users_controller 是空的。不再提供说明。
- stackoverflow 对此有回答:Devise: Allow admins to edit other users - Rails
但我不完全理解,需要做什么:我明白了,我需要在我的路线中添加 devise_for :users, :path_prefix => 'd',但发帖者还谈到了自己构建表单和控制器,以及隔离用户控制器。我不明白,他的意思。
- 还有另一个stackoverflow答案:Rails, Devise - Admin trying to edit another user profile, own profile loaded instead
在这一个中,发帖人使用了 cancan,看起来,他的用户控制器中确实有一个管理类,而我没有:
class Admin::UsersController < ApplicationController
def index
@users = User.all
end
end
再一次,我不知道海报是如何到达那里的以及他做了什么。
是否有分步指南,让管理员用户编辑其他用户配置文件?
你可以在这里访问我的代码:https://github.com/Metaphysiker/philosophica
提前致谢!
【问题讨论】: