Authlogicはアクションを作成する前にログイン時に検証を実行します
-
06-07-2019 - |
質問
実際にユーザーレコードを作成する前に、ログインフィールドで組み込みの検証を実行する必要がありますが、Authlogicでこれを行う方法はありますか?その理由は、ユーザーが新しいログインを入力すると、AJAXが呼び出され、一意で有効なログインなどを確認するためです。それが完了すると、ユーザーはログインを要求するために電子メールを入力できます。プロセス。
解決
UserモデルはActiveRecord検証を使用するため、これはAuthlogicに固有のものではありません。モデルで検証を実行する場合は、 user.valid?
を呼び出します。これは、モデル全体が有効かどうかに応じて、 true
または false
を返します。ただし、 user.errors
オブジェクトもいっぱいになるため、特定の属性が有効かどうかを確認できます。
これは、RJSを使用してAJAXを実行するコードです。ただし、何でも使用して、好きなように整理できます。
user = User.new(params[:user])
user.valid? # we aren't interested in the output of this.
error = user.errors.on(:login)
if error
page.insert_html :before, "user_login", content_tag(:span, error, :class => "error_message")
end
Railsフォームをマスターする 2番目のエピソードでこのトピックを取り上げるスクリーンキャストシリーズ。
所属していません StackOverflow