ruby 导轨名称错误:未初始化常数

gj3fmq9x  于 2023-03-12  发布在  Ruby
关注(0)|答案(1)|浏览(131)

我有一个类FeatureFlagAdapter在我的lib文件夹中。在我的代码的某些地方,我可以引用它作为FeatureFlagAdapter.new(opts)。但是在其他地方,它会失败,并显示类似于NameError: uninitialized constant ContactsController::FeatureFlagAdapter的错误。我知道我可以将引用更改为::FeatureFlagAdapter.new(opts),但在同一文件中,还有对其他类/模块的其他引用,这些引用没有以根命名空间操作符作为前缀。我想知道这是为什么,是否有一个不同的方法,我可以采取。

w46czmvw

w46czmvw1#

在任何Rails版本中,lib目录默认都不是自动加载的,这是有意为之的。
您可以:
1.将代码移动到自动加载的路径中,例如app的任何子目录。
1.手动要求该文件。
1.将/lib添加到自动加载路径。[不推荐]
参见:

相关问题