我在Ruby on Rails项目中使用设计,用户有一个admin-attribute:
schema.rb:
create_table "users", force: :cascade do |t|
.
t.boolean "admin", default: false
end
我想,管理员用户可以编辑其他用户。我不是第一个提出这个问题的人,但所有给出的答案都缺乏明确的指示:
但是我不明白我需要做什么:它在路线中提到"devise_for :users, :path_prefix => 'my'"
,但我的路线中没有。然后,它提到,我需要如何删除params哈希的密码密钥,但我的users_controller是空的。没有提供更多说明。
但我不完全明白,需要做什么:我知道,我需要将devise_for :users, :path_prefix => 'd'
添加到我的路线中,但是海报还谈到了自己构建表单和控制器,并隔离Userscontroller。我不明白,他的意思是什么。
在这一篇中,海报使用了cancan,看起来,他的用户控件中确实有一个管理类,我没有:
class Admin::UsersController < ApplicationController
def index
@users = User.all
end
end
再一次,我不知道,海报是如何到达那里的,以及他做了什么。
是否有分步指南,让admin-user编辑其他用户配置文件?
您可以在此处访问我的代码:https://github.com/Metaphysiker/philosophica
提前致谢!
答案 0 :(得分:4)
我明白了:
devise_for :users,: :path_prefix => 'my'
resources :users
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
至:<%= form_for(@user) do |f| %>
将此添加到usercontroller:
def edit
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to adminpanel_path
else
render 'edit'
end
end
完成。 (奇怪的是,我无法将5号代码放入代码中)