gpt4 book ai didi

ruby-on-rails - 将 Pundit 与命名空间一起使用

转载 作者:行者123 更新时间:2023-12-04 02:12:29 27 4
gpt4 key购买 nike

在我的项目中,我有非常常见的命名空间“admin”。

namespace :admin do
resources :users, except: :show
end

我使用 Pundit gem 来设置适当的授权,但我发现很难与命名空间内的 Controller 一起使用。我的政策组织如下
-policies
-admin
user_policy.rb
application_policy.rb
admin_policy.rb
awesome_policy.rb

非常类似于 Controller 。

但是,当我在 Controller 内部使用“授权”方法时,我只得到一个错误,通知该应用程序“无法找到 UserPolicy”。我的 UserPolicy 看起来像这样:
class Admin::UserPolicy < AdminPolicy
end

那么问题是什么,我应该怎么做才能让 Pundit 看到命名空间内的这些策略?

最佳答案

与新合并commit你可以这样做。

它会自动工作。

更新:

从 0.3 版本有效地删除了不替换功能。但是,可以在 github 上的命名空间分支中获得命名空间功能。 .

您可以在 issue on github 中看到对功能的讨论.

我对那些想要使用 Pundit 命名空间的人的建议 - 暂时不要使用。在过滤器之前创建以访问管理仪表板等受限区域,并在专家文件中保留授权模型规则。这样,您就可以使用 Pundit,而不会遇到任何问题和问题。

关于ruby-on-rails - 将 Pundit 与命名空间一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com