Я хочу использовать CanCan для обработки моих разрешений. У моего сайта много разных уровней разрешений, и большинство из них зависит от контекста. Например, вот отношения в моих трех основных моделях:
class User < ActiveRecord::Base
has_many :league_relations
has_many :leagues, :through => :league_relations
end
class League < ActiveRecord::Base
has_many :league_relations
has_many :users, :through => :league_relations
end
class LeagueRelation < ActiveRecord::Base
belongs_to :user
belongs_to :league
end
Обратите внимание, LeagueRelations - это вложенный ресурс лиг. Я хочу позволить пользователю изменять лиги и измерять авторизацию каждого пользователя на основе данных, хранящихся в league_relation. Затем я хотел бы, чтобы пользователь изменил отношение лиги, основываясь только на данных, хранящихся в модели пользователя.
Чтобы быть кратким: я в основном хочу, чтобы LeagueRelations использовалась для авторизации действий League, а Users - для авторизации действий LeagueRelations. т.е. league_relation.owner = true, чтобы удалить лигу, но user.owner? должно быть истинным, чтобы удалить LeagueRelation. Как я могу авторизоваться на основе атрибутов league_relation внутри контроллера лиги и разрешить другие действия в других контроллерах на других моделях. Пожалуйста, оставьте комментарий, если вам нужны дополнительные разъяснения.
Спасибо.