我对如何正确配置CanCanCan感到有点困惑.
对于初学者,我是否必须添加load_and_authorize_resource到我想限制访问的每个控制器资源?
这就是我想做的事情:
这就是我的ability.rb样子:
class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new # guest user (not logged in)
#Admin
if user.has_role? :admin
can :manage, :all
can :manage, :newsroom
# Editor
elsif user.has_role? :editor
can :read, :all
can :manage, :newsroom
can :manage, Post
#Member
elsif user.has_role? :member
can :read, :all
can :create, Post
can :status, Post
can :update, Post do |post|
post.try(:user) == user
end
#Guest
else
can :read, :all
can :create, …Run Code Online (Sandbox Code Playgroud)