[英]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.