2013-03-28 2 views
0

Я использую местный камень (здесь ClearConnect) в приложении Rails, но получить следующее сообщение об ошибке при попытке требовать его:«LoadError: не может загрузить такой файл» для локальной жемчужины

LoadError: cannot load such file -- clearconnect 

Это происходит независимо от где я пытаюсь потребовать драгоценный камень. Когда проблема возникла изначально, запрос «require» был в файле lib, и с тех пор я попробовал его в «config/application.rb», а также через консоль rails, но не имел успеха. Требование других драгоценных камней, указанных в Gemfile моего приложения через консоль, было успешным, если это поможет.

Вещей я пытался/проверил до сих пор:

Файл .gem, соответствующий мой драгоценный камень был помещен в каталоге поставщика и следующая строка в моем Gemfile:

gem 'clearconnect', '0.0.1', :path => 'vendor' 

Запуск расслоения установки после обновления Gemfile производится следующим образом:

Using clearconnect (0.0.1) from source at vendor 

«расслоение EXEC списка Gem» перечисляет мою г em, как и работает «Gem.loaded_specs» с консоли Rails.

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

На данный момент я считаю, что проблема заключается в том, как я указываю свой камень в Gemfile или проблема с самим камнем (хотя локальные проблемы не возникают). Жемчуг можно найти здесь: chrahunt/clearconnect.

ответ

0

Линии

Using clearconnect (0.0.1) from source at vendor

не подтверждает много, кроме существование пути, указанного в Gemfile (подтверждается путем изменения пути к точке в другое место и не получения ошибки). Другие пункты, используемые для проверки драгоценного камня, были установлены, похоже, работают аналогичным образом, что приводит к реальной проблеме, которая заключалась в том, что Bundler не поддерживает указание локального файла .gem в Gemfile [github issue here]. Обходной упоминается в выпуске:

Put the gem in vendor/cache and run (ironically) 'bundle install --no-cache'.

работал просто отлично, и у меня не было никаких дальнейших ошибок. Я также смог развернуть приложение в Heroku без дополнительной настройки.

Резюмируя:

Поместите .gem файл, который вы хотели бы включить в приложение в каталоге vendor/cache. Укажите свой драгоценный камень в Gemfile вашего приложения, как обычно (нет: путь), указав номер версии явно. В моем случае это было:

gem 'clearconnect', '0.0.1'

Run bundle install --no-cache (рассуждения here), и этот вопрос должен быть решен.

1

Вы должны поставить полный путь к драгоценному камню, а не только «поставщик», но «поставщик/самоцветы/mygem-ВЕРСИЯ»

+0

Мой драгоценный камень находится в папке поставщика 'поставщика/ClearConnect-0.0.1.gem' я редактировал Gemfile включить сам файл, но который вызвал ошибку, когда я побежал«расслоением установки». '.../vendor/clearconnect-0.0.1.gem не существует' Должен был указать, что камень был расположен в корне этого каталога, хотя, спасибо за совет. –

+0

NP - если это привело вас к победе, вы всегда можете отметить ее как ответ :-) –

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