gpt4 book ai didi

ruby-on-rails - CanCan:在除 MainApp 的命名空间中的 load_and_authorize_resource

转载 作者:行者123 更新时间:2023-12-04 13:17:08 26 4
gpt4 key购买 nike

我在我的 Rails 应用程序中使用 CanCan 来获取权限,在该应用程序中,我为一些通用表单功能构建了自己的引擎。我想锁定我系统中的权限,以便用户无法自由访问我的引擎 Controller 的操作。这些 Controller 大部分只使用 7 个 REST Action ,所以我想使用 CanCan 的 load_and_authorize_resource在每个 Controller 的顶部。

但是,当我这样编写代码时:

    module MyEngine
class FormController < ApplicationController
load_and_authorize_resource
...
end
end

我收到此错误:
    uninitialized constant Form

我的猜测是 load_and_authorize_resource 中的自动加载器绑定(bind)到我的 MainApp 命名空间,并且无法识别我在不同的命名空间中调用它,像 Form.find(params[:id]) 这样的调用也是如此而不是 MyEngine::Form.find(params[:id]) .

如果是这种情况,我该如何解决?这不是什么大不了的事,因为 authorize!仍然可以正常工作,所以我可以在每个操作中单独定义授权,但如果我能够使用 load_and_authorize_resource 会感觉更清晰方法。

最佳答案

CanCan 找不到命名空间模型。尝试指定类:

load_and_authorize_resource class: MyEngine::Form

关于ruby-on-rails - CanCan:在除 MainApp 的命名空间中的 load_and_authorize_resource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11925462/

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