Mongoid:未初始化的常量(NameError)
Posted
技术标签:
【中文标题】Mongoid:未初始化的常量(NameError)【英文标题】:Mongoid: uninitialized constant (NameError) 【发布时间】:2021-11-03 02:45:56 【问题描述】:我目前正在尝试编写一段非常基本的代码,用于读取 ruby 文件并将一些文档实例化到我的本地 MongoDB 中。
为我的 Mongo 文档建模的类位于一个名为“search_term.rb”的单独文件中,如下所示:
class SearchTerm
include Mongoid::Document
field :search_term, type: String
end
在与“search_term.rb”位于同一文件夹中的名为“populate_database.rb”的单独文件中,我正在尝试从列表中读取并创建新文档并查看我的 MongoDB Compass,如果它们实际上是创建:
require_relative 'search_term'
business_list = [
'business name 1',
'business name 2',
'business name 3',
'business name 4',
]
for business in business_list
s_term = SearchTerm.new()
s_term.search_term = business
s_term.post
end
问题是:当我运行“ruby populate_database.rb”时出现错误:
<class:SearchTerm>': uninitialized constant SearchTerm::Mongoid (NameError)
我已经尝试过创建一个空的 Gemfile 并写入:
gem 'mongo'
gem 'mongoid'
进入它们并运行“捆绑安装”。之后会创建以下 Gemfile.lock 文件:
GEM
specs:
activemodel (6.1.4.1)
activesupport (= 6.1.4.1)
activesupport (6.1.4.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 1.6, < 2)
minitest (>= 5.1)
tzinfo (~> 2.0)
zeitwerk (~> 2.3)
bson (4.12.1)
concurrent-ruby (1.1.9)
i18n (1.8.10)
concurrent-ruby (~> 1.0)
minitest (5.14.4)
mongo (2.13.0)
bson (>= 4.8.2, < 5.0.0)
mongoid (7.3.2)
activemodel (>= 5.1, < 6.2)
mongo (>= 2.10.5, < 3.0.0)
ruby2_keywords (~> 0.0.5)
ruby2_keywords (0.0.5)
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
zeitwerk (2.4.2)
PLATFORMS
x64-mingw32
DEPENDENCIES
mongo
mongoid
BUNDLED WITH
2.2.27
但问题仍然存在。各位大神可以给我一些解决方法的建议吗?
提前致谢!!
【问题讨论】:
【参考方案1】:如果你没有使用 Rails,你需要在你的应用程序的某个地方require "mongoid"
自己,然后加载 Mongoid 配置。有关如何执行此操作的示例,请参阅 here。
【讨论】:
以上是关于Mongoid:未初始化的常量(NameError)的主要内容,如果未能解决你的问题,请参考以下文章
NameError - 未初始化的常量 Sass::Engine: