1

我有一个宝石,它声明了这个类FulltextRow

如果我从不同的 gem 打开类,我创建了一个名为 hacks.rb 的初始化程序。

我添加了以下代码:

FulltextRow.class_eval do
    ....
end

但是,如果我不需要课程,我会得到例外:

uninitialized constant FulltextRow (NameError)

但它运作良好如果我这样做:

require 'fulltext_row'
FulltextRow.class_eval do
    ....
end

我的问题是:

为什么我需要一个在 gem 中定义的类?它们不是自动需要的吗?

4

1 回答 1

0

我很乐意为您提供帮助,但由于缺乏信息,很难解决此问题。不过,我确实有两个建议。

1)您应该验证 gem 是否在 gem 中正确加载。我的意思是进行支持测试,以确认 gem 正在按预期工作。我遇到过我的 gem 的类没有加载的实例,因为我没有正确设置文件结构或者在某个地方有一个愚蠢的错字。

2)您的gemfile也可能设置为不自动加载gem。

gem full_text_row, require: false

祝你好运!

于 2013-03-26T04:42:56.183 回答