Представление "Правка" по-прежнему отображается после выхода из 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, как я и указал для действий по обновлению и уничтожению. Зачем?

0 ответов

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