2015-01-24 2 views
0

У меня возникла проблема с камнем cancancan и унаследованными таблицами на Ruby on rails. Модель моей учетной записи имеет несколько унаследованных моделей Teacher < Account, Director < Account, которые имеют разные возможности.Ror: cancancan скрыть указательную страницу для определенных пользователей типа

Вот мои правила: «в ability.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 

Когда я вошел в качестве учителя, и я иду к/директоров (индексная страница), Канкан должен поднять сообщение Unauthorized :: AccessDenied, а не отображать страницу директоров.

Возможно, я пропустил что-то в документе. Кто-нибудь может просветить меня?

Благодаря

ответ

0

Accouding к этому:

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

Что-то вроде этого внутри класса Ability должны соответствовать Rails STI суб-класс:

can :manage, Account, type: 'Teacher' 
Смежные вопросы