2011-02-01 118 views
2

我剛剛切換到設計/ Omniauth組合,並且一切都在我的本地主機服務器上正常工作。但是,當我上傳到heroku時,當用戶點擊註冊傳統註冊表單(而不是omniauth登錄)時,應用程序崩潰。我使用的軌道3.我的日誌說heroku&devise用戶註冊註冊控制器錯誤

LoadError(沒有這樣的文件來加載--bcrypt): 應用程序/控制器/ registrations_controller.rb:11 'build_resource' 應用程序/控制器/ registrations_controller.rb: 4創建」

所引用的控制器:

class RegistrationsController < Devise::RegistrationsController 

    def create 
    super 
    session[:omniauth] = nil unless @user.new_record? 
    end 

    private 

    def build_resource(*args) 
    super 
    if session[:omniauth] 
     @user.apply_omniauth(session[:omniauth]) 
     @user.valid? 
    end 
    end 
end 

第4行和圖11是超因爲註冊控制器被重寫設計。出了什麼問題?謝謝。

回答

6

請確保您有:

gem 'bcrypt-ruby' 

在你的Gemfile。如果沒有,添加並運行

bundle install 

此外,您可能需要刪除您的Gemfile.lock並嘗試再次推送到Heroku。

+0

謝謝。它確實需要刪除Gemfile.lock來安裝它,但它現在正在工作。 – John 2011-02-01 19:02:44

1

我有在Heroku上運行Omniauth railscast的同樣的問題。

gem 'bcrypt-ruby' 

沒有訣竅,也沒有必要刪除Gemfile.lock。 我還需要:

heroku stack:migrate bamboo-mri-1.9.2