Ror:cancancan隐藏特定用户类型的索引页面

时间:2015-01-24 10:29:57

标签: ruby-on-rails-4 cancan cancancan

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

以下是我的规则:&#34;在ability.rb&#34;

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

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

我可能在文档中遗漏了一些东西。有人可以启发我吗?

由于

1 个答案:

答案 0 :(得分:0)

根据这个:

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

Ability类中的内容应匹配Rails STI子类:

can :manage, Account, type: 'Teacher'