我正在尝试使用 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