2013-08-07 1 views
0

У меня есть местный жемчуг, который я могу выполнить из сценария, отображается в моем Gemfile.lock, как установлено, и возвращает true в консоли rails с помощью «Gem.available ? («< gem name>»).Gem недоступен с консоли RoR, но у irb/bundle есть

Однако, когда я пытаюсь потребовать этот драгоценный камень, чтобы вызвать скрипт, который полагается на него через консоль rails (или rake task или контроллер), я получаю «запрос» «: не может загрузить такой файл - < название гем>»

RubyGems окружающей среды:.

- RUBYGEMS VERSION: 1.8.25 
- RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [x86_64-linux] 
- INSTALLATION DIRECTORY: /home/www-data/.rvm/gems/ruby-1.9.3-p385 
- RUBY EXECUTABLE: /home/www-data/.rvm/rubies/ruby-1.9.3-p385/bin/ruby 
- EXECUTABLE DIRECTORY: /home/www-data/.rvm/gems/ruby-1.9.3-p385/bin 
- RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
- GEM PATHS: 
    - /home/www-data/.rvm/gems/ruby-1.9.3-p385 
    - /home/www-data/.rvm/gems/[email protected] 
- GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
- REMOTE SOURCES: 
    - http://rubygems.org 

IRB:

$ irb 
1.9.3-p385 :001 > require '<gem name>' 
=> true 

консоль:

RAILS_ENV=production rails console 
Loading production environment (Rails 3.2.3) 
1.9.3-p385 :001 > require '<gem name>' 
LoadError: cannot load such file -- <gem name> 

ли консоль работает в отдельной среде? % x (какой рубин) скажет нет .. драгоценный камень также отображается в моем списке драгоценных камней как для пакета, Gemfile.lock, так и для% (gem list) в консоли.

+0

То, что вам нужно, не всегда совпадает с именем Gem: http://stackoverflow.com/questions/132867/i-have-a-gem-installed-but-require-gemname-does-not- работа - почему документация Gem должна рассказать вам, как ее требовать. –

+0

Это было бы в этом случае. Я использую require '< gem name >' в начале скрипта, который работает отлично, используя тот же самый камень. Что-то в Rails не видит этот камень, как установлено .. Я даже не могу выполнить этот рабочий скрипт, используя% x (<путь к скрипту>). –

+0

Является ли камень, определенный в производственной группе в вашем Gemfile? –

ответ

0

В случае, если кто-нибудь столкнется с этим, трюк является ошибкой с Bundler.

  1. Объявите камень в вашем Gemfile без пути (" 'имя < камня>' камень '< версии>'")
  2. Скопируйте драгоценный камень в поставщике/кэш/
  3. запуск «установка пакетирования - -по-кэш».

Даже если вы сказали, что не использовать кеш, он найдет драгоценный камень, установит его и сделает его доступным для Rails.

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