0

アプリのユーザー モデルがあり、has_secure_passwordこの時点まで効果的に使用されています。 コラムがhas_secure_password必要であり、ここに私の最近の問題があります。password_digest

管理者とユーザーを分離する文字列型の「ロール」列を作成したかったのですが、移行後password_digestに破損して、アプリで使用しようとすると無効なハッシュ エラーが発生しました。mysql ではすべて問題password_digestありませんが (値は変更されていません)、Rails コンソールでは次のような値が返されますUser.first.password_digest

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

さらに、ロールのタイプを文字列から変更しない限り、同様にめちゃくちゃになります(ただしpassword_digest、mysqlではまったく問題ありません)。password_digestRailsコンソールに関する限り、移行をロールバックして「ロール」列を削除すると、通常の状態に戻ります。

ここで何が起こっているのですか?

これが私のデータベーススキーマです: データベース スキーマ

以下は、mysql に直接供給された SQL クエリの結果です。 MySQL クエリ

Railsを介した同じクエリの結果は次のとおりです(初めて): Rails クエリ

Railsを介した同じクエリの結果は次のとおりです(最初の時間後): Railsクエリ2

4

1 に答える 1

0

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

于 2012-05-05T14:00:12.867 に答える