2012-05-05 13 views
0

私のアプリのユーザーモデルがあり、この時点までhas_secure_passwordを効果的に使用しています。 has_secure_passwordpassword_digestの列を必要とし、ここに私の最近の問題があります。新しい列が追加されたときにPassword_Digestに問題が発生しました

私は、管理者とユーザーを分ける文字列型の "役割"列を作成したかったのですが、マイグレーション後に私のpassword_digestが壊れてしまい、アプリケーションで使用しようとすると無効なハッシュエラーが発生します。 mysqlのすべてが正常であるには(password_digest値が変更されていない)が、レールにUser.first.password_digestによって返される値は、の線に沿って何かあるコンソール:、私は文字列から役割の種類を変更しない限り、

 
\#BigDecimal:59d0c60,'0.0',9(18) 

さらにそれを(password_digestのように、それはMySQLに関係なく完全に問題ありません)。移行をロールバックして「役割」列を取り除くと、password_digestは、レールコンソールに関する限り通常の状態に戻ります。

ここでは何が起こっていますか?ここで Database schema

のMySQLに直接供給SQLクエリの結果です:

は、ここに私のデータベーススキーマですレールを通じて同じクエリの結果(1回目)ここで MySQL query

です: Rails query

レールによる同じクエリの結果(最初の後): Rails query2

+0

あなたの説明だけであなたの状況をデバッグすることは誰も信じられません...いくつかのコードとテーブル定義を見ることなく文脈が十分ではありません。 –

答えて

0

あなたのクエリが自動説明されているようです。ここにあるドキュメントを参照してくださいhttp://guides.rubyonrails.org/active_record_querying.html#automatic-explain

+0

それが問題ならば、Base.silence_auto_explainをどこに置くべきかわかりません...ファイルに入れられますか? –

+0

私がここで見つけ出す最も重要なことは、なぜ自動記述が引き起こされるのかということです。私は、データベーススキーマだけでなく、何かが変更されたと信じられています。私はJim Garrisonに同意します。あなたの問題をデバッグするのに十分な情報がありません。 –

関連する問題