Rails cancan load_and_authorize_resource无法正常工作

ari*_*san 2 authorization cancan ruby-on-rails-3

我承诺定制一个具有cancan认证的项目.我的康康舞ability.rb

if user.has_role? :super_admin
  can :manage, :all
elsif user.has_role? :site_admin
  can :manage, [User, Listing]
elsif user.has_role? :manager
  can :manage, Listing, :user_id => user.id
end
Run Code Online (Sandbox Code Playgroud)

我的模特:

User

Listing has_many :listing_types

ListingType belongs_to :listing

现在我创建了一个新模型 ListingDetail belongs_to :listing

控制器listing_details,load_and_authorize_resource 当我从经理角色访问此页面时,它重定向到登录页面(在我的管理命名空间的索引控制器的索引操作中,我重定向到nil用户的登录页面)为什么会发生这种情况?

Dom*_*nic 7

您无法ListingDetail作为管理员访问控制器,因为您只被授予了Listing对象的权限.要ListingDetails仅为Listings您自己添加权限,请将以下内容添加到您的经理权限中:

can :manage, ListingDetail, :listing => {user_id => user.id}
Run Code Online (Sandbox Code Playgroud)

  • 您应该单击复选标记以验证答案是否正确并且您接受它. (2认同)