Rails CanCan: Разве CanCan не предполагает, что я могу: читать, если я могу: обновлять?
Это работает для авторизации! вызов
can [:read,:update], brand
но CanCan::AccessDenied выбрасывается, когда строка в классе Ability изменяется на:
can :update, brand
марка не ноль.
Если я могу: обновить что-то, разве я не смогу автоматически: прочитать это?
Я просто хочу знать, если это из-за дизайна, или я что-то упускаю.
1 ответ
Решение
Это по замыслу. Определено только несколько псевдонимов по умолчанию:
def default_alias_actions
{
:read => [:index, :show],
:create => [:new],
:update => [:edit],
}
end
Так что, если кто-то имеет право "обновить", то он имеет право "редактировать". Это естественно для Rails-приложений, которые следуют стилю REST.
Однако вы можете определить свои собственные псевдонимы очень просто.