認証が必要なアプリケーションでOmniAuthを使用しています。OmniAuthトリガによる検証
- は、私は検証を持っているオプション1について
- TwitterでOmniAuth
経由OmniAuthを経由して自分のサイト
は私が認証するユーザーのための3つの方法があります形式:
validates_presence_of :email, :role
validates_presence_of :password, :if => :password_required
validates_presence_of :password_confirmation, :if => :password_required
validates_length_of :password, :within => 4..40, :if => :password_required
validates_confirmation_of :password, :if => :password_required
validates_length_of :email, :within => 3..100
validates_uniqueness_of :email, :case_sensitive => false
validates_format_of :email, :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i
validates_format_of :role, :with => /[A-Za-z]/
問題は、初めてアカウントを作成したときにユーザーがtwitter/facebook経由でログインできるようにすると、検証が実行されて失敗するということです。例えば
:
のActiveRecord :: RecordInvalid - 検証に失敗しました:パスワードは空白にすることはできません、パスワードが短すぎる(最小値は4つの文字である)、パスワードの確認は空白にすることはできません。
OmniAuthで作成したアカウントはパスワードを送信しませんが、私のモデルでこれを認識し、特定の検証をスキップする方法を正確にはわかりません。
それはあらゆる使用のなら、フルaccount.rbモデルはここにある:http://pastie.org/private/wzpftprrzfg42uifetfhpa
どうもありがとう!
私はその周りに道を見つけたが、私はそれがハックだと思う。私はこの方法に加えて(上記の私のペストリーに示されているように)。 http://pastie.org/2229023 –