Authlogicはアクションを作成する前にログイン時に検証を実行します

StackOverflow https://stackoverflow.com/questions/1216895

  •  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番目のエピソードでこのトピックを取り上げるスクリーンキャストシリーズ。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top