Ruby on rails Ruby/Rails可以角色化ActiveAdmin
我正在使用RoR、CanCanCan、Rolify和ActiveAdmin。我可以登录并查看页面,但不能作为管理员登录。我不确定我在这里做错了什么。 admin/dashboard.rbRuby on rails Ruby/Rails可以角色化ActiveAdmin,ruby-on-rails,activeadmin,cancancan,rolify,Ruby On Rails,Activeadmin,Cancancan,Rolify,我正在使用RoR、CanCanCan、Rolify和ActiveAdmin。我可以登录并查看页面,但不能作为管理员登录。我不确定我在这里做错了什么。 admin/dashboard.rb ActiveAdmin.register_page "Dashboard" do menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") } content title: proc{ I18n.t("active_admin.d
ActiveAdmin.register_page "Dashboard" do
menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") }
content title: proc{ I18n.t("active_admin.dashboard") } do
div class: "blank_slate_container", id: "dashboard_default_message" do
span class: "blank_slate" do
span I18n.t("active_admin.dashboard_welcome.welcome")
small I18n.t("active_admin.dashboard_welcome.call_to_action")
end
end
end
end
控制器/应用程序\u controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def authenticate_active_admin_user!
authenticate_user!
unless current_user.role?(:admin)
flash[:alert] = "You are not authorized to access this resource!"
redirect_to root_path
end
end
end
结束
user.rb
类用户 devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def role?(role)
return !!self.roles.find_by_name(role.to_s.camelize)
end
end
config/initializer/active_admin.rb
ActiveAdmin.setup do |config|
config.authentication_method = :authenticate_active_admin_user!
config.current_user_method = :current_user
config.logout_link_path = :destroy_user_session_path
config.logout_link_method = :delete
config.batch_actions = true
config.localize_format = :long
end
您是否已通过控制台验证您是否具有管理员角色?
ActiveAdmin.setup do |config|
config.authentication_method = :authenticate_active_admin_user!
config.current_user_method = :current_user
config.logout_link_path = :destroy_user_session_path
config.logout_link_method = :delete
config.batch_actions = true
config.localize_format = :long
end