在x64 Windows 7機器,Ruby 2.0,Rails 4.0.0上開發。 要利用has_password功能,我需要安裝BCrypt。 Rails 4.0.0支持BCrypt 3.0.0-3.0.9。但是,這些版本的BCrypt不能在x64 Windows機器上運行,我不得不更新到BCrypt 3.1.2。
但是,我也不得不手動更新.. \ activemodel的-4.0.0 \ lib中\ active_model \ secure_password.rb到bcrypt 3.1.2引用(先前參考的〜> 3.0.0)BCrypt 3.1.2更新導致Heroku推入失敗
begin
gem 'bcrypt-ruby', '~> 3.1.0'#changed from '~> 3.0.0'
require 'bcrypt'
rescue LoadError
$stderr.puts "You don't have bcrypt-ruby installed in your application. Please add it to your Gemfile and run bundle install"
raise
end
現在我的應用和測試在本地運行。我對Issues using bcrypt 3.0.1 with ruby2.0 on Windows
做出這種變化是由於答案。然而,現在,當我推到Heroku上,我得到以下跟蹤:
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
You don't have bcrypt-ruby installed in your application. Please add it to your Gemfile and run bundle install
rake aborted!
can't activate bcrypt-ruby (~> 3.0.0), already activated bcrypt-ruby-3.1.
2. Make sure all dependencies are added to Gemfile.
.
.
.
!
! Push rejected, failed to compile Ruby/Rails app
我不知道如何讓我的應用程序在本地運行和在heroku上進行這些更改。我不確定是否需要以不同的方式推向heroku,或者如果我需要以不同的方式解決bcrypt問題。任何幫助都會很棒。
這個答案沒有多大意義,看起來不對。我有同樣的問題,但我使用bcrypt 3.0.1。我也在軌道4.0.3,但懷疑這可能是一個英雄的問題。使用rails 4.0.0上的這個bcrypt版本,一切都很好,現在它突然崩潰了。 –