Почему методы cancancan возвращают неправильное значение в представлении, но прямо в контроллере?

#cancancan

#cancancan

Вопрос:

У меня есть возможности cancancan can(:manage, User, id: user.id)

Когда пользователь открывает собственный профиль, то can? :update, @user в UsersController#show корректно возвращает true, но в представлении show возвращает false .

Кто-нибудь знает, что вызывает это несоответствие?

cancancan 3.1, rails 6.0.3.4

Ответ №1:

Хорошо, я решил это. Проблема заключалась в том, что я вызвал can? декоратор, и он не работает. can? :update, @user.object работает нормально.