1

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 を ruby​​2.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の問題に別の方法で対処する必要があるのか​​ わかりません。どんな助けでも素晴らしいでしょう。

4

2 に答える 2

2

現時点で私のレールをサポートしていた bcrypt の最後のバージョン (4.0.0) がバージョン 3.0.1 であるというわけではありません。

それ以上のバージョンを試すと、エラーが発生します。

よろしく PS

于 2013-11-01T20:10:48.747 に答える
1

bcrypt-ruby3.0.1 から 3.1.5に更新することでこれを解決しました。

于 2014-03-08T07:04:41.767 に答える