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 を参照していました)。
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
これで、アプリケーションとテストがローカルで実行されます。この変更は、Windows で bcrypt 3.0.1 を ruby2.0 で使用する問題に関する回答に基づいて行いました。
ただし、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の問題に別の方法で対処する必要があるのか わかりません。どんな助けでも素晴らしいでしょう。