Представление "Правка" по-прежнему отображается после выхода из Pundit::NotAuthorizedError и перенаправления
У меня довольно стандартная настройка: Identity::Member
пользователи, и каждый Project::Project
принадлежит члену я использую Devise
а также Pundit
вместе для аутентификации и авторизации.
Вот мой код для Project::ProjectPolicy
class Project::ProjectPolicy < ApplicationPolicy
attr_reader :member, :project
def initialize(member, project)
@member = member
@project = project
end
...
def update?
member == project.member
end
def edit?
update?
end
...
end
А вот мой edit
действие:
# GET /projects/1/edit
def edit
authorize @project_project
respond_with @project_project
end
Наконец, спасательная установка в ApplicationController
rescue_from Pundit::NotAuthorizedError, with: :member_not_authorized
def member_not_authorized
respond_with current_member, status: :unauthorized, location: -> { root_path }
end
Но... по какой-то причине щелчок по кнопке редактирования по-прежнему приведет вас к представлению редактирования, хотя все изменения заблокированы, и пользователи перенаправляются в путь root_path, как я и указал для действий по обновлению и уничтожению. Зачем?