3

Rails 3.0.9 アプリケーションに課題があり、数日前に静的コンテンツをコミットするまで「うまく」機能していました。それはheroku上にあり、認証にSocery Gemを使用していますアクセスしようとすると、Herokuからアプリケーションクラッシュエラーが発生しました。ログを見ると、これが表示されます

 Starting process with command `thin -p 38037 -e production 
-R /home/heroku_rack/heroku.ru  start`
2012-04-19T16:17:26+00:00 app[web.1]: 
/app/.bundle/gems/ruby/1.9.1/gems/activesupport-   
3.0.9/lib/active_support/dependencies.rb:304:in `rescue in depend_on':
No such file to load -- bcrypt (LoadError)

いくつかの調査を行った後、追加しました

 gem 'bcrypt-ruby'

私のGemファイルに、今私のアプリケーションはHerokuで起動しますが、これをログに記録してユーザー認証に失敗します

←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m
 ←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m
←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m Started POST "/sessions" for 94.2
00.71.131 at 2012-04-23 02:15:48 -0700
←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m
←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m NoMethodError (undefined method `
unlock_token' for #<User:0x000000052f7740>):    
←[32m2012-04-23T09:15:48+00:00 app[web.1]:←[0m   app/controllers/sessions_contro
ller.rb:24:in `create'
4

2 に答える 2

1

今日、この問題に遭遇しました。ユーザー テーブルに「unlock_token」フィールドがない可能性があります。おそらく次のような移行を追加する必要があります。

class AddUnlockTokenToUsers < ActiveRecord::Migration
  def change
    add_column :users, :unlock_token, :string, :default => nil
  end
end

この機能はここに実装されているようです: https://github.com/NoamB/sorcery/pull/249

于 2012-05-03T12:05:03.213 に答える
0

宝石も更新したときにこれに遭遇しました。Sorcery 0.7.11 にはこの問題があります。正常に動作する 0.7.7 に戻しました。

于 2012-05-02T08:11:45.197 に答える