我有一个类FeatureFlagAdapter
在我的lib
文件夹中。在我的代码的某些地方,我可以引用它作为FeatureFlagAdapter.new(opts)
。但是在其他地方,它会失败,并显示类似于NameError: uninitialized constant ContactsController::FeatureFlagAdapter
的错误。我知道我可以将引用更改为::FeatureFlagAdapter.new(opts)
,但在同一文件中,还有对其他类/模块的其他引用,这些引用没有以根命名空间操作符作为前缀。我想知道这是为什么,是否有一个不同的方法,我可以采取。
1条答案
按热度按时间w46czmvw1#
在任何Rails版本中,
lib
目录默认都不是自动加载的,这是有意为之的。您可以:
1.将代码移动到自动加载的路径中,例如
app
的任何子目录。1.手动要求该文件。
1.将
/lib
添加到自动加载路径。[不推荐]参见: