2011-02-01 92 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