在我的项目中,我有非常常见的命名空间“admin”。
namespace :admin do
resources :users, except: :show
end
我使用 Pundit gem 设置正确的授权,但我发现很难与命名空间中的控制器一起使用。我的政策组织如下
-policies
-admin
user_policy.rb
application_policy.rb
admin_policy.rb
awesome_policy.rb
非常类似于控制器。
但是,当我在控制器内部使用“授权”方法时,我只得到一个错误,通知该应用程序“无法找到 UserPolicy”。我的 UserPolicy 看起来像这样:
class Admin::UserPolicy < AdminPolicy
end
那么问题是什么,我应该怎么做才能让 Pundit 在命名空间中看到这些策略?