ruby-on-rails - BCrypt 3.1.2 更新导致 Heroku 推送失败

标签 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 问题。任何帮助都会很棒。

最佳答案

并不是说此时 bcrypt 支持我的 rails 的最后一个版本 (4.0.0) 是版本 3.0.1。

如果您尝试更高版本,您将收到错误。

问候 附言

关于ruby-on-rails - BCrypt 3.1.2 更新导致 Heroku 推送失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161469/

相关文章:

java - Heroku java 服务器崩溃

ruby-on-rails - RoR2.8 & Heroku : I installed a plugin, 在本地工作,现在 heroku 根本不工作

ruby-on-rails - 无法获取对象属性

node.js - 赫罗库; “No such process type web defined in Procfile” 错误

ruby-on-rails - Ruby on Rails 基于角色的身份验证系统,如何使用不同的角色?

ruby-on-rails - Rails 5.0.0beta3:开发中的 ActionController::InvalidAuthenticityToken

ruby - 在模块中使用实例变量是一种不好的做法吗?

ruby-on-rails - 从不包含 'http' 的字符串中提取 URL

ruby-on-rails - Rails 脚手架问题 # 未定义方法 `edit_pais_path'

php - 从 CakePHP 切换到 Ruby on Rails 有什么技巧吗?