加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使主动管理员使用设计和cancan已经使用的

发布时间:2020-12-17 01:46:18 所属栏目:百科 来源:网络整理
导读:我一直在使用设计进行身份验证,并可以在我的应用程序中进行授权.该应用程序适用于他们.但现在我想使用主动管理员来管理我的应用程序中已经被设计和cancan使用的所有用户. Active admin为用户创建自己的admin_users表.如何让active_admin使用以前使用的用户和
我一直在使用设计进行身份验证,并可以在我的应用程序中进行授权.该应用程序适用于他们.但现在我想使用主动管理员来管理我的应用程序中已经被设计和cancan使用的所有用户. Active admin为用户创建自己的admin_users表.如何让active_admin使用以前使用的用户和角色表? thanx的帮助.

解决方法

如果您已经创建了users表,那么您应该跳过创建此表.

运行:

rails generate active_admin:install --skip-users

并且不要忘记运行:

bundle exec rake db:migrate

尝试更改config / initializers / active_admin.rb文件中的身份验证方法.还要确保已创建current_admin_user方法,否则,您可以将其修改为设计默认值(current_user方法).

您必须将注销链接中使用的http方法修改为:delete.

config.logout_link_method = :delete

以及注销操作的路径路径.

config.logout_link_path = :destroy_user_session_path

为了更好地理解authenticate方法,我粘贴了我的app / controllers / application_controller.rb相关代码:

class ApplicationController < ActionController::Base
  protect_from_forgery

  #
  # redirect registered users to a profile page
  # of to the admin dashboard if the user is an administrator
  #
  def after_sign_in_path_for(resource)
    resource.role == 'admin' ? admin_dashboard_path : user_path(resource)
  end

  def authenticate_admin_user!
    raise SecurityError unless current_user.try(:role) == 'admin'
  end

  rescue_from SecurityError do |exception|
    redirect_to root_path
  end
end

希望它可以帮助你,也许还有其他人.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读