【发布时间】:2011-11-17 16:14:08
【问题描述】:
我继承了在我的控制器中工作的资源,我使用 cancan 进行授权。但是,我在编写所需的能力时遇到了问题。
我可以通过 2 种方式显示特定顺序:
/profile/123/orders/321
/store/456/orders/321
在控制器中:
class OrdersController < ApplicationController
inherit_resources
belongs_to :profile, :store, :optional => true
load_and_authorize_resource
...
end
角色是:用户(模型中的has_one :profile)和经理(模型中的has_one :store)
要求(用文字表示)是:
- 经理可以在(属于)他的上下文中显示订单 商店。
- 经理无法在任何用户的上下文中显示订单 个人资料(应拒绝访问)
- 用户可以在 他个人资料的背景
- 用户无法在任何上下文中显示订单 存储(拒绝)
我无法满足这些要求,也许我应该以特殊方式或实际上以两种方式加载资源?直觉告诉我,在这两种情况下,对订单的访问都应该基于对父资源的访问。 谢谢你的帮助。
【问题讨论】:
标签: ruby-on-rails nested cancan inherited-resources