从gem扩展类

时间:2013-03-25 13:32:51

标签: ruby-on-rails-3 gem

我有一个gem,它声明了类FulltextRow

我创建了一个名为hacks.rb的初始化程序,我打开了来自不同宝石的类。

我添加了以下代码:

FulltextRow.class_eval do
    ....
end

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

uninitialized constant FulltextRow (NameError)

但如果我这样做的话,那就好了。

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

我的问题是:

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

1 个答案:

答案 0 :(得分:0)

我很乐意帮助你,但由于缺乏信息,很难解决这个问题。不过,我确实有两点建议。

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

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

gem full_text_row, require: false
祝你好运!

相关问题