私は Omniauth-Identity を実装しており、Ryan Bates による Railcast がそれを実行しているのを見てきました。彼は、ログイン ビューを調べているときに、ログイン フィールドはデフォルトで電子メールに設定されていますが、カスタマイズできることを率直に述べています。「ログイン」列の下の ID テーブルに保存されているユーザー名でサインインしようとすると、MySql エラーが発生します
Unknown column 'identities.email
上記のように、Identity はデフォルトでこの auth_key に設定されるため、これは予期されることです。宝石のソースコードには、この定義があります
def auth_key(method = false)
@auth_key = method.to_s unless method == false
@auth_key = nil if @auth_key == ''
@auth_key || 'email'
end
したがって、どこかで auth_key(login) を呼び出すことができるはずであり、データベースの正しい列を照会すると想定しています。私の質問はどこですか。「email」を「login」に置き換えてモデルのメソッドを上書きしようとしましたが、何もしませんでした。
Ryan Bates と同じように、セッション/新しいビューから /auth/identity/callback を呼び出しています。どうもありがとうございました。明らかな場合は申し訳ありませんが、インターネットで見つけたのはRailscastsチュートリアルの逆流だけだったようです。