如何在Rails中包含已安装的ruby gem?

时间:2009-03-28 22:57:31

标签: ruby-on-rails ruby rubygems nokogiri

我正在尝试在Rails应用程序中安装我安装的gem。我可以在Ruby程序中使用gem,只需使用以下命令行运行:

require 'nokogiri'

但是当我尝试在我的一个Rails控制器中执行相同操作时,它会错误地说“没有这样的文件可以加载 - nokogiri”。

我尝试使用lib / nokogiri.rb文件的完整路径,但由于无法找到“nokogiri / native”而失败。

4 个答案:

答案 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 
那么你不应该得到那个问题。