gpt4 book ai didi

ruby-on-rails-4 - 在设计中以管理员身份编辑其他用户,ruby on rails

转载 作者:行者123 更新时间:2023-12-01 15:40:21 25 4
gpt4 key购买 nike

我在我的 Ruby on Rails 项目中使用 devise,并且用户有一个管理属性:

架构.rb:

     create_table "users", force: :cascade do |t|
.

t.boolean "admin", default: false
end

我希望管理员用户可以编辑其他用户。我不是第一个问这个问题的人,但所有给出的答案都缺乏明确的说明:

  1. devise wiki 中有一个 2011 年的条目:https://github.com/plataformatec/devise/wiki/How-To%3a-Manage-users-through-a-CRUD-interface

但我不明白我需要做什么:它在 route 提到了 "devise_for :users, :path_prefix => 'my'",但我的 route 没有路线。然后,它提到,我需要如何删除 params 哈希的密码 key ,但我的 users_controller 是空的。没有提供更多说明。

  1. 对此有一个 stackoverflow 答案:Devise: Allow admins to edit other users - Rails

但我不完全明白,需要做什么:我明白了,我需要添加 devise_for :users, :path_prefix => 'd' 到我的路线,但是海报还讨论了自己构建表单和 Controller ,以及隔离用户 Controller 。我不明白,他是什么意思。

  1. 还有另一个 stackoverflow 答案:Rails, Devise - Admin trying to edit another user profile, own profile loaded instead

在这一个中,张贴者使用了 cancan,看起来他在他的用户 Controller 中确实有一个管理类,而我没有:

class Admin::UsersController < ApplicationController
def index
@users = User.all
end
end

再一次,我不知道张贴者是如何到达那里的以及他做了什么。

是否有分步指南让管理员用户编辑其他用户配置文件?

您可以在这里访问我的代码:https://github.com/Metaphysiker/philosophica

提前致谢!

最佳答案

我想通了:

  1. devise_for :users,: :path_prefix => 'my' 上的路由中添加前缀
  2. 在 devise_for 下方添加:resources :users
  3. 从设计到用户的注册中复制 edit.html.erb。
  4. 更改 <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>

至:<%= form_for(@user) do |f| %>

  1. 将此添加到用户 Controller :

       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)

关于ruby-on-rails-4 - 在设计中以管理员身份编辑其他用户,ruby on rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35583473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com