我的路线上有公司的代码。
资源:公司,除::销毁做资源:代码,除外::销毁结束
能力:
can :read, Company do |c|
user.has_role? :operator, c
end
can :read, Code do |c|
user.has_role? :operator, code.company
end我的CodesController检查
before_filter :set_code, only: [:show, :edit, :update, :activate, :deactivate]
load_and_authorize_resource :except => :create #TODO fix as cancan updates
def index
if params[:company_id]
...如果我访问/companies/1/代码,而我的用户不应该访问它,我就看不到结果。但是,如果我试图直接查看/companies/1,就会得到CanCan AccessDenied。
为什么这不显示在嵌套索引中呢?
发布于 2014-02-11 06:02:25
您还应该在代码控制器中对父模型执行load_and_authorize_resource:
load_and_authorize_resource :company然后通过公司加载代码资源:
load_and_authorize_resource :company
load_and_authorize_resource :code, through: :company我看不出你的before_filter有什么附加值,因为这正是CanCan会为你做的.
https://stackoverflow.com/questions/21693829
复制相似问题