所以我已经实现了rails admin gem,即使使用cancan gem,我也无法找到一种方法来保护localhost:3000 / admin
有人可以给我一步一步的指导吗?我无法真正找到管理面板的视图或控制器,所以我不确定如何密码保护它。
答案 0 :(得分:0)
此页面介绍了如何使用Cancan:https://github.com/sferik/rails_admin/wiki/CanCan
# in config/initializers/rails_admin.rb
RailsAdmin.config do |config|
config.authorize_with :cancan
end
他们的能力.rb例子可能比你需要的要多一点,这是我的:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
if user.has_role? :admin
can :manage, :all
can :access, :rails_admin # grant access to rails_admin
can :dashboard # grant access to the dashboard
end
end
end
然后,您必须将admin角色授予用户。
你可以在rails控制台上这样做:
user = User.find(1) #find user with ID 1
user.add_role :admin #assign role
user.has_role? :admin #should evaluate to True