Может кто-нибудь объяснить мне, как работает CanCan accessible_by? Откуда он знает, каковы отношения между пользователем и вещью, которую нужно ограничить?
accessible_by
Существует отличный RailCast о CanCan (созданный его создателем):
http://railscasts.com/episodes/192-authorization-with-cancan
Проверяет текущего пользователя на соответствие правилам, описанным в инициализаторе способностей, который включает CanCan::Ability.Когда вы вызываете accessible_by, он проверяет правила, указанные в классе Ability, и возвращает записи, к которым у пользователя есть доступ. Вики драгоценного камня очень хороши ... здесь: определение способностей
CanCan::Ability
Ability