2009-10-12 2 views
2

У меня есть куча config.gem заявления в моем файле 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" 

...

Если я «грабли драгоценные камни: установить», то я получаю этот вопрос: грабли прерванную ! нет такого файла для загрузки - fastcsv

Ну ... я знаю, что такого файла не загружать, потому что я пытаюсь его установить. Я подозреваю, что это может произойти из моего местоположения. У меня есть модуль в моем Lib каталога:

module SmartContactsImporter 

    require 'fastercsv' 
    require 'parseexcel' 
... 

Может быть, Rails не любит меня требует драгоценного камня там, но это кажется глупым, так как нет ничего плохого в том, ваш модуль зависит от драгоценного камня. Любые идеи о том, как решить эту проблему?

ОБНОВЛЕНИЕ Оказывается, эта проблема также связана с механизацией, геокитом, и список продолжается. Немного странно, что config.gem не работает довольно легко из коробки. FYI Я не замораживаю свои драгоценные камни.

ответ

2

Если вы отказались от требования в SmartContactsImporter, это должно сработать (config.gem "fastercsv" потребует от вас).

Вы можете работать вокруг него, когда require необходимо в environment.rb с:

begin 
    require "rack/cache" 
rescue LoadError 
    STDERR.puts "not loaded rack/cache: #{$!}" 
end 

Это некрасиво, но это действительно делает трюк.

0

Вы не должны требовать внутри своего модуля, config.gem потребует его для вас.

Существует также связанная с этим проблема с config.gem, где она попытается потребовать зависящий камень, который еще не установлен при установке драгоценных камней, но это пока не так.

Смежные вопросы