0

我在 Ruby on rails 上遇到了关于cancancan gem 和继承表的问题。我的帐户模型有多个继承模型Teacher < AccountDirector < Account它们具有不同的能力。

这是我的规则:“inability.rb”

if account.director?
  can :manage, Account, profile: [ :teacher, :director ]
end

if account.teacher?
  can :manage, Account, profile: [ :teacher ]
end

我的路线文件如下所示:

resources :directors, controller: :accounts, profile: :director
resources :teachers, controller: :accounts, profile: :teacher

当我以教师身份登录并转到 /directors(索引页面)时,Cancan 应该引发 Unauthorized::AccessDenied 消息,而不是显示导演页面。

我可能错过了文档中的某些内容。有人可以启发我吗?

谢谢

4

1 回答 1

0

据此:

can :read, Project, :active => true, :user_id => user.id

能力类中的类似内容应该与 Rails STI 子类匹配:

can :manage, Account, type: 'Teacher'
于 2015-01-24T15:48:32.593 回答