ruby-on-rails-3 - Rails cancan load_and_authorize_resource 不工作

标签 ruby-on-rails-3 authorization cancan

我 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_detailsload_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/

相关文章:

ruby-on-rails - 给定一个 json 对象,如何在 rails 中遍历该对象

authorization - 比较 XACML 策略内的属性

java - "RunAs"支持使用 JBoss PicketLink 吗?

ruby-on-rails - 如何使用 RSpec 和 Devise/CanCan 进行集成测试?

ruby-on-rails - devise/cancan模拟帐户

ruby - 为什么 resque 使用子进程来处理队列中的每个作业?

ruby-on-rails - Rails、path_names 和嵌套资源

javascript - Rails 3 - 未找到一些必需的 JS

java - Shiro Security,多个领域,哪些授权信息被获取?

ruby-on-rails - 是否可以在日期属性范围内设置 CanCan 能力?