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

并不是说目前支持我的 rails 的最后一个 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 回答