我正在尝试在Rails应用程序中安装我安装的gem。我可以在Ruby程序中使用gem,只需使用以下命令行运行:
require 'nokogiri'
但是当我尝试在我的一个Rails控制器中执行相同操作时,它会错误地说“没有这样的文件可以加载 - nokogiri”。
我尝试使用lib / nokogiri.rb文件的完整路径,但由于无法找到“nokogiri / native”而失败。
答案 0 :(得分:3)
更好,将以下内容放在environment.rb文件中:
Rails::Initializer.run do |config|
...
config.gem :nokogiri
...
end
这将告诉Rails你依赖于那个特定的宝石。它还允许您指定特定版本,它会自动保持所有宝石同步,或者如果您愿意,可以将它们解压缩到供应商/宝石中。
答案 1 :(得分:2)
我遇到了类似的错误但只是忘了将以下内容放在我的environment.rb文件中:(注意引用的"nokogiri"
)
Rails::Initializer.run do |config|
...
config.gem "nokogiri"
...
end
答案 2 :(得分:1)
好的我明白了。这听起来很愚蠢......但是哦,好吧......
事实证明我的机器上安装了两个红宝石。我使用InstantRails来为我的测试应用程序提供服务,它预装了一个ruby安装程序。我有另外一个装置,但是在这里安装了nokogiri,而不是安装在InstantRails中。
无论如何,他们都在不同的地方寻找宝石。
答案 3 :(得分:0)
尝试以下
require 'rubygems'
gem 'nokogiri'
如果您使用某种形式的* nix,那么在安装gem时会出现任何错误,特别是错误表明gem不在路径上。如果您已经将gem安装为您自己而不是root用户并且您的宝石路径中没有个人宝石库,则可能会发生这种情况。
如果您始终使用
安装宝石sudo gem install some_gem_name
那么你不应该得到那个问题。