繁体   English   中英

如何获得Rails中包含的已安装红宝石宝石?

[英]How do I get an installed ruby gem included in Rails?

我正在尝试获取在Rails应用程序中安装的gem。 我可以在使用以下命令从命令行运行的Ruby程序中要求gem正常运行:

require 'nokogiri'

但是,当我尝试在我的一个Rails控制器中执行相同操作时,会出现错误,提示“没有要加载的文件-nokogiri”。

我尝试使用lib / nokogiri.rb文件的完整路径,但是失败了,因为它找不到“ nokogiri / native”。

更好的是,将以下内容放在您的environment.rb文件中:

Rails::Initializer.run do |config|
  ...
  config.gem :nokogiri
  ...
end

这将告诉Rails您依赖于该特定的gem。 它还允许您指定特定版本,并且它将自动保持所有宝石同步,或者根据需要将其解包到供应商/宝石中。

我遇到了类似的错误,但只是忘记将以下内容放入我的environment.rb文件中:(请注意引号"nokogiri"

Rails::Initializer.run do |config|
  ...
  config.gem "nokogiri"
  ...
end

好吧,我知道了。 这听起来很愚蠢...但是好吧...

事实证明,我的机器上安装了两次红宝石安装。 我使用InstantRails服务于我的测试应用程序,并且它预包装有ruby安装。 但是,我还进行了另一项安装,并且在这里已经安装了nokogiri,而不是在InstantRails的安装中。

无论如何,他们在不同的地方寻找宝石。

尝试以下

require 'rubygems'  
gem 'nokogiri'  

如果您使用某种形式的* nix,那么在安装gem时是否会遇到任何错误,特别是指出该gem不在路径上的错误。 如果您以自己而不是root身份安装gem,并且gem路径中没有个人gem库,则可能会发生这种情况。

如果您始终使用以下命令安装gem

sudo gem install some_gem_name 

那么您就不会遇到这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM