You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入MyModule时出现“Uninitialized constant A::MyModule”错误求助

解决Ruby中include模块时的“Uninitialized constant”错误

出现这个错误的核心原因是:你的a.rb文件没有加载定义MyModule的my_module.rb,Ruby解释器根本不知道这个模块的存在,自然会报常量未初始化的错误。

修复方案

在a.rb的最开头添加文件加载语句,确保Ruby能找到并加载my_module.rb:

修改后的a.rb代码:

require_relative 'my_module'

class A
  include MyModule

  puts ARRAY
end

说明

  • require_relative是Ruby中加载相对路径文件的常用方法,适合加载同目录或子目录下的文件。如果两个文件不在同一目录,只需调整路径参数,比如require_relative '../lib/my_module'。
  • 加载完模块文件后,include MyModule就能正常引入模块,模块中定义的ARRAY常量也会被引入到类A的命名空间中,puts ARRAY就能正常输出[1,2,3]。

内容的提问来源于stack exchange,提问作者b d

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 16:39:20