Я пытаюсь использовать Pundit для аутентификации доступа к некоторым статическим представлениям, которые не требуют взаимодействия с базой данных:
class StaticController < ApplicationController
include Pundit
authorize :splash, :home?
def home end
end
Ниже моя статическая политика. Политика home?
всегда возвращает true, поэтому я должен иметь доступ к домашнему представлению.
class StaticPolicy < Struct.new(:user, :static)
def initialize(user, resource)
@user = user
@resource = resource
end
def home?
true
end
end
Вместо этого я получаю это:
undefined method `authorize' for StaticController:Class
Pundit отлично работает, если я разрешаю модель:
def forums_index
@forums = Forum.all
authorize @forums
end
Однако, если я попытаюсь использовать метод авторизации вне действия, которое не использует модель, я получаю:
undefined method `authorize' for StaticController:Class