在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问题。任何帮助都会很棒。
答案 0 :(得分:2)
此刻(b.0.0)支持我的rails的最后一个版本不是版本3.0.1。
如果您尝试的版本高于此版本,则会收到错误。
此致 PS
答案 1 :(得分:1)
我通过从bcrypt-ruby
3.0.1更新到3.1.5来解决这个问题。