BCrypt 3.1.2更新导致Heroku推送失败

时间:2013-10-03 14:09:22

标签: ruby-on-rails ruby heroku

在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

现在我的应用程序和测试在本地运行。由于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问题。任何帮助都会很棒。

2 个答案:

答案 0 :(得分:2)

此刻(b.0.0)支持我的rails的最后一个版本不是版本3.0.1。

如果您尝试的版本高于此版本,则会收到错误。

此致 PS

答案 1 :(得分:1)

我通过从bcrypt-ruby 3.0.1更新到3.1.5来解决这个问题。