Использование Ruby Bcrypt с Heroku

У вас есть приложение Ruby on Rails, использующее BCrypt для хеширования паролей, модель User имеет

require "BCrypt"

и гемфайл имеет

gem 'bcrypt-ruby'

Все это отлично работает при локальном запуске, однако, когда я развертываю его на своем сервере Heroku, я получаю следующую ошибку.

2012-11-16T14:42:32+00:00 app[web.1]: Exiting
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/application/finisher.rb:53:in `block in <module:Finisher>'
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:436:in `eager_load!'
2012-11-16T14:42:32+00:00 app[web.1]: => Ctrl-C to shutdown server
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:312:in `depend_on'
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:225:in `require_dependency'
2012-11-16T14:42:32+00:00 app[web.1]: /app/vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:317:in `rescue in depend_on': No such file to load -- BCrypt (LoadError)
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/engine.rb:439:in `block (2 levels) in eager_load!'
2012-11-16T14:42:32+00:00 app[web.1]:   from /app/vendor/bundle/ruby/1.9.1/gems/railties-3.2.6/lib/rails/initializable.rb:30:in `instance_exec'
...
2012-11-16T14:42:32+00:00 app[web.1]:   from script/rails:6:in `<main>'
2012-11-16T14:42:33+00:00 heroku[web.1]: Process exited with status 1
2012-11-16T14:42:33+00:00 heroku[web.1]: State changed from crashed to down
2012-11-16T14:42:33+00:00 heroku[web.1]: State changed from starting to crashed
2012-11-16T14:42:34+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=smartaprofiles.herokuapp.com fwd= dyno= queue= wait= connect= service= status=503 bytes=

Я предполагаю, что проблема в No such file to load -- BCrypt (LoadError), но не могу ее исправить, bundle install и bundle update работают нормально, и он говорит, что bcrypt-ruby установлен нормально.
Есть идеи, как я могу это исправить? Я весь вышел!

Спасибо


person Ben    schedule 16.11.2012    source источник
comment
Вы пробовали require "bcrypt"? Файловая система Heroku чувствительна к регистру.   -  person eugen    schedule 16.11.2012
comment
ТЫ ВЕЛИКОЛЕПЕН! Я не могу поверить, что это было так просто исправить, есть день в моей жизни, который я не верну! Большое спасибо, если вы опубликуете это как ответ, я отмечу его как правильный.   -  person Ben    schedule 16.11.2012


Ответы (1)


Просто публикую этот ответ, чтобы помочь другим найти эту страницу. Правильный ответ в комментариях к вопросу, автор @eugen.

Проблема заключалась в использовании заглавных букв, так как я разрабатываю для Windows, ей все равно на заглавные буквы, но на сервере Heroku (UNIX) это важно, и я должен был использовать «bcrypt» вместо «BCrypt».

person Ben    schedule 18.12.2012