我的environment.rb文件中有一堆config.gem语句:
config.gem "fastercsv", :version => "~>1.5.0"
config.gem "parseexcel", :version => "~>0.5.2"
config.gem "geokit", :version => "~>1.4.1"
config.gem "facebooker", :version => "~>1.0.50"
...
如果我“rake gems:install”,那么我会遇到这个问题: 耙子流产了! 没有这样的文件要加载 - fastercsv
嗯......我知道没有这样的文件要加载,因为我正在尝试安装它。我怀疑这可能是由于我的要求所在。我的lib目录中有一个模块:
module SmartContactsImporter
require 'fastercsv'
require 'parseexcel'
...
也许Rails不喜欢我需要宝石,但它似乎很愚蠢,因为你的模块依赖于宝石是没有错的。关于如何解决这个问题的任何想法?
更新 事实证明,这个问题也发生在机械化,geokit,并且列表仍在继续。有点奇怪的是,config.gem开箱即用并不容易。仅供我,我没有冻结我的宝石。
答案 0 :(得分:2)
如果您在SmartContactsImporter
中遗漏了要求,那么这应该可行(config.gem "fastercsv"
将为您执行此要求)。
如果require
需要environment.rb
并且:
begin
require "rack/cache"
rescue LoadError
STDERR.puts "not loaded rack/cache: #{$!}"
end
这很难看,但确实可以解决问题。
答案 1 :(得分:0)
你不应该在你的模块内部,config.gem会要求你。
还有一个与config.gem相关的问题,它会在安装宝石时尝试要求尚未安装的依赖gem,但这似乎并非如此。