Я создаю веб-сайт, где пользователь может увидеть несколько стихов или написать свою собственную.Я использую Devise и Pundit для аутентификации и авторизации.
Когда пользователь переходит на главную ссылку (http://0.0.0.0:3000/),), я хочу, чтобы он мог видеть страницу, даже если он НЕ вошел в систему.Страница HOME - это просто HTML-страница с кнопками, которые при нажатии перенаправляют на все стихи (контроллер поэзии).
Однако у меня возникает следующая ошибка:
Pundit::AuthorizationNotPerformedError in PagesController#home
application_controller.rb
class ApplicationController < ActionController::Base
include Pundit
protect_from_forgery with: :exception
before_action :authenticate_user!
after_action :verify_authorized, :except => :index, unless: :devise_controller?
after_action :verify_policy_scoped, :only => :index, unless: :devise_controller?
rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized
private
def user_not_authorized
flash[:alert] = "Non sei autorizzato a eseguire questa azione"
redirect_to(root_path)
end
end
pages_controllers.rb
class PagesController < ApplicationController
include Pundit
skip_before_action :authenticate_user!, only: [:home]
# skip_after_action :verify_authorized, except: [:home]
# after_action :verify_authorized, except: [:home]
# before_action :authenticate_user!, except: [:home,]
def home
end
end
Я пытался следовать этому руководству: Pundit :: AuthorizationNotPerformedError Но я продолжаю получать ту же ошибку.
Я НЕ создал pages_policy.rb
, но я не думаю, что это проблема.