heroku&设计用户注册注册控制器错误

时间:2011-02-01 18:48:47

标签: ruby-on-rails heroku devise super railscasts

我刚刚切换到Devise / Omniauth组合,一切都在我的localhost服务器上正常运行。但是,当我上传到heroku时,当用户点击传统注册表单上的注册(而不是omniauth登录)时,应用程序崩溃。我正在使用rails 3.我的日志说

  

LoadError(没有这样的文件加载--bcrypt):   app / controllers / registrations_controller.rb:'build_resource'中的11   app / controllers / 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行是super,因为注册控制器正在覆盖Devise。出了什么问题?感谢。

2 个答案:

答案 0 :(得分:6)

确保您拥有:

gem 'bcrypt-ruby'
你的Gemfile中的

。如果没有,请添加并运行

bundle install

此外,您可能必须删除Gemfile.lock并尝试再次推送到Heroku。

答案 1 :(得分:1)

我在heroku上运行Omniauth railscast时遇到了同样的问题。

gem 'bcrypt-ruby'

诀窍和没有必要删除Gemfile.lock。 我还需要:

heroku stack:migrate bamboo-mri-1.9.2