gpt4 book ai didi

ruby-on-rails - 如何使用默认的 app/policies/application_policy.rb?

转载 作者:行者123 更新时间:2023-12-03 23:25:04 24 4
gpt4 key购买 nike

每当我创建一个新的脚手架时,我都想使用它默认的专家配置,该配置可在 app/policies/application_policy.rb 中获得。 .无需创建 model_name_policy.rb我总是收到 unable to find policy错误。

当我没有为特定模型设置规则时,如何使用默认值?

最佳答案

最简单的方法可能是从 Pundit::NotDefinedError 中拯救出来。由 Pundit::PolicyFinder#policy! 提出.

鉴于您的默认政策:

# app/policies/application_policy.rb:
ApplicationPolicy = Struct.new :user, :record do
def index?
true
end

def show?
true
end

# ... other sensible defaults

end

假设您在 Rails Controller 中使用它:
# app/controllers/application_controller.rb:
class ApplicationController
include Pundit

# ...

private

def policy(record)
super
rescue Pundit::NotDefinedError
ApplicationPolicy.new pundit_user, record
end
end

免责声明:我还应该声明创建隐式默认策略 is generally frowned upon .除了最简单的情况或最悲观的默认值(全部为 false)外,过于宽松的政策很容易漏掉。

关于ruby-on-rails - 如何使用默认的 app/policies/application_policy.rb?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522622/

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