Ruby on rails 限制管理员部分和用户的访问';s管理
我正在使用Ruby on rails 限制管理员部分和用户的访问';s管理,ruby-on-rails,ruby,cancan,Ruby On Rails,Ruby,Cancan,我正在使用CanCan。有一个用户注册页面和一个管理员命名空间,管理员在其中管理用户。网站的管理部分有两种能力:“正常”和“管理能力”: namespace :admin do resources :users end 如何限制访问,以便: 任何人都可以通过注册创建用户 用户可以自行编辑和删除 并且管理员可以删除任何用户 我试着这么做,但没有找到我想要的方法。你的想法 您需要在应用程序/模型中的能力模型中定义权限 例如,在app/model/admin_ability.r
CanCan
。有一个用户注册页面和一个管理员命名空间,管理员在其中管理用户。网站的管理部分有两种能力:“正常
”和“管理能力
”:
namespace :admin do
resources :users
end
如何限制访问,以便:
- 任何人都可以通过注册创建用户
- 用户可以自行编辑和删除
- 并且管理员可以删除任何用户
我试着这么做,但没有找到我想要的方法。你的想法 您需要在应用程序/模型中的能力模型中定义权限 例如,在app/model/admin_ability.rb中:
class AdminAbility
include CanCan::Ability
def initialize(admin)
if admin
can :manage, :all
end
end
end
然后在你的app/models/user_ability.rb中(我猜这就是你说的“正常”的意思):
您可以将允许的操作限制为某个角色;:管理就是一切,但您可以使用:读取、:显示、:编辑、:销毁或包含其中一些元素的数组
您可以在这里找到更深入的信息:简单的检查-这里有一些非常有用的文章和教程。
class UserAbility
include CanCan::Ability
def initialize(user)
if user
user ||= User.new # guest user (not logged in)
can :manage, User, :id => user.id
end
end