1

我目前正在尝试在我的 Rails 项目中包含一个用于模糊字符串匹配的 gem,并且在我实际尝试使用它时遇到错误,并且希望有任何关于在哪里寻找丢失链接的建议。

在我的 GemFile 中:

gem 'fuzzy-string-match'

在进行捆绑安装后,它会出现在我的 GemFile.lock 中:

fuzzy-string-match (0.9.5)

但是每当我尝试在我的项目中使用它时,我都会收到一个错误:

NameError: uninitialized constant FuzzyStringMatch

如果我在我的模型中手动需要它,我已经让它工作了:

require 'fuzzystringmatch'

但我的理解是,bundler 应该在幕后处理这个问题。有没有一种很好的方法来调试并查看捆绑程序实际上在做什么来理解为什么会丢失?

谢谢!

4

1 回答 1

0

只有当 gem ( ) 的名称与 gem 项目的 lib 目录( )的根目录中的文件名匹配时,允许您跳过该require语句的约定才有效。这称为 gem 的主文件(source)。在这种情况下,它不匹配。fuzzy-string-matchfuzzystringmatch.rb

为避免require语句重复,您可以执行以下操作:

gem 'fuzzy-string-match', :require => "fuzzystringmatch"
于 2013-04-09T21:41:24.853 回答