devise でハマった話


devise の認証は標準では email & password なんだけど、
email 以外で認証しなきゃいけない要件があってしばらく
ハマったのでメモしておく


色々なサイトを参考にしてみていたんだけど、最終的に
rails g devise:views で作った sessions/new.html.erb
のもともと email だった欄にバリデーションがかかって
いて submit をクリックすると「メール アドレスを入力
してください。」と警告されてしまってどこが原因なのか
しばらく悩んだ。


結果 new.html.erb のフィールドが f.email_field に
なっていたのが原因だった事がわかった。
この email_field ってやつは html5 の input タグ
type="email" を生成していて勝手にバリデーションして
くれるらしい


ActionView::Helpers::FormHelper
<input type="email">-HTML5タグリファレンス


(chrome で確認してたんだけど、IE9 は input type="email"
に対応してないんだね、、、)


この部分を text_field に書き換える事で現象を回避す
る事が出来た。


公式 wiki をちゃんと見ればそこにも答えがあったんだ
よね、、、


Home · plataformatec/devise Wiki · GitHub