gpt4 book ai didi

ruby-on-rails - Ruby 命名空间类混淆

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:12 29 4
gpt4 key购买 nike

这是设置:

# app_controller.rb
class AppController; end

# org/app_controller.rb
module Org
class AppController < ::AppController; end
end

# org/admin/app_controller.rb
module Org
class Admin::AppController < AppController; end
end

为什么 Org::Admin::AppController 继承自 AppController,而不是 Org::AppController,考虑到类定义是命名空间?

最佳答案

这是因为在您打开 Org::Admin::AppController 时, Org::AppController一定没有定义,但是 ::AppController一定是。也许您的文件没有按照您认为的顺序“需要”?您可以通过添加 require <file containing base class> 来解决此问题在创建派生类的文件中。

(次要风格指南:不要使用 :: 来引用您为定义而打开的类和模块。)

编辑原因:我进行了一些测试,我一定是弄错了。

关于ruby-on-rails - Ruby 命名空间类混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214625/

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