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.

Однако вы можете определить свои собственные псевдонимы очень просто.

Другие вопросы по тегам