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