2013-10-03 61 views
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)BCrypt 3.1.2更新導致Heroku推入失敗

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

不是說現在bcrypt的最新版本支持我的rails(4.0.0)是3.0.1版本。

如果您嘗試更高的版本,您將收到錯誤消息。

問候 PS

+0

這個答案沒有多大意義,看起來不對。我有同樣的問題,但我使用bcrypt 3.0.1。我也在軌道4.0.3,但懷疑這可能是一個英雄的問題。使用rails 4.0.0上的這個bcrypt版本,一切都很好,現在它突然崩潰了。 –

1

我通過更新從bcrypt-ruby 3.0.1到3.1.5解決了這個。