我 promise 定制一个有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
我的模型:
用户
list has_many :listing_types
ListingType belongs_to :listing
现在我创建了一个新模型 ListingDetail belongs_to :listing
Controller listing_details
有 load_and_authorize_resource
当我从管理员角色访问此页面时,它会重定向到登录页面
(在我的管理命名空间的索引 Controller 的索引操作中,我重定向到 nil 用户的登录页面)
为什么会这样?
最佳答案
您不能以管理员身份访问 ListingDetail
Controller ,因为您仅被授予对 Listing
对象的权限。要仅在您拥有的 Listings
上添加 ListingDetails
的权限,请将以下内容添加到您的经理权限中:
can :manage, ListingDetail, :listing => {:user_id => user.id}
关于ruby-on-rails-3 - Rails cancan load_and_authorize_resource 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6791053/