2

Devise/Omniauth コンボに切り替えたところ、localhost サーバーですべてが正常に動作しています。ただし、heroku にアップロードすると、ユーザーが従来のサインアップ フォーム (omniauth ログインではなく) でサインアップをクリックすると、アプリがクラッシュします。Rails 3を使用しています。ログには次のように書かれています

LoadError (読み込むファイルがありません --bcrypt): app/controllers/registrations_controller.rb:11 in 'build_resource' app/controllers/registrations_controller.rb:4 in create'

参照されるコントローラー:

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

登録コントローラーがDeviseをオーバーライドしているため、4行目と11行目はスーパーです。何がうまくいかないのですか?ありがとう。

4

2 に答える 2

6

以下があることを確認してください。

gem 'bcrypt-ruby'

あなたのGemfileで。そうでない場合は、追加して実行します

bundle install

また、Gemfile.lock を削除して、Heroku へのプッシュを再試行する必要がある場合もあります。

于 2011-02-01T18:54:33.607 に答える
1

HerokuでOmniauth railscastを実行すると同じ問題が発生しました。

gem 'bcrypt-ruby'

トリックを行い、Gemfile.lock を削除する必要はありません。私も必要でした:

heroku stack:migrate bamboo-mri-1.9.2
于 2011-03-28T05:26:50.433 に答える