0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

rails, deviseを使って仮登録・本登録を実装するときのアプローチ

0
Posted at

はじめに

railsの認証まわりの実装についてメモを残します。
ユーザーの登録の時は入力画面と確認画面があることが多いですよね。
deviseを使って上記の実装をしようとしたのですが、思った以上に大変でした。
どのようなアプローチで実装しようかと考えたので記事にしようと思います。

環境

rails 6.1.6
ruby 3.0.6
devise 4.9.3

仕様

仕様は下記のようになっています。

  1. 入力画面でユーザーが入力する
  2. 入力画面から確認画面への動線がある
  3. 確認画面で入力した内容を確認できる
  4. 確認画面から入力画面へ遷移できる
  5. 確認画面から入力画面へ遷移するときはフォームの初期値に入力した値がセットされている

実装

下記でそれぞれの内容について詳しく紹介しようと思います。

入力画面

入力画面はrailsのフォームビルダーを使って作成しました。
この箇所は通常のユーザー新規作成の箇所とあまり変わりません。

確認画面

確認画面では入力画面で入力した内容を表示します。
DBに保存してない値をどのように表示するか悩みました。
session, flashに値を一時的に保存するなども考えたのですがredisを使うことにしました。
確認画面に遷移する前にredisにユーザーが入力した値を保存し、確認画面では保存した値を表示します。

確認画面から入力画面への遷移

確認画面から入力画面へ遷移したときはフォームの初期値に値を設定しておきたいです。
これにはflashを使いました。
画面リロードでフォームに設定した値は消えてしまいますが、動作としては問題ないと思います。

まとめ

一般的な認証機能ですが実装してみると悩む箇所が多かったです。
他の実装例など興味あるので教えてもらえると嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?