deviseの導入

 ウィザード形式でdeviseをアプリに実装するために行った事をメモ

 

 

 ウィザード形式とは?

ウィザード形式とは、利用者に一つずつ質問や設定項目を提示し、対話的に処理を進める操作方式のことを指します。コンピューターからの質問に答えながら、設定や登録を行うようなイメージです。

 

 

今、作っているものだとこんな感じです。

 

f:id:natori_gorira:20200505220141p:plain

 

次は"電話番号認証"へと順々に入力できるようにしていく

 

 

 deviseとは?

Rubyのgemで、導入するだけでログイン機能の実装を勝手に構築するというgemです。

※gemについては後日また書きます。

 

手順はまずGemfileに"gem devise"を追記

 

f:id:natori_gorira:20200505221448p:plain


gemをインストールするため次のコマンドを実行
$ bundle install 

 

アプリケーション内でdeviseを使えるようにするため、下記のコマンドを実行します。
$ rails g devise:install

#User(devise管理下)作成
$ rails g devise user


このようなファイルが自動的に作られます。

下記はUserモデル

f:id:natori_gorira:20200505224027p:plain


下記はマイグレーションファイル

f:id:natori_gorira:20200505225443p:plain


マイグレーションを実行
$ rails db:migrate


次にviewの作成
$ rails g devise:views users

下記のファイルが作られます

f:id:natori_gorira:20200505231131p:plain

今回はウィザードでファイルを追記していくので、ファイルの意味も説明
ファイルパス 機能
sessions/new.html.erb ログイン画面
registrations/new.html.erb ユーザ登録画面
registrations/edit.html.erb プロフィール情報変更画面
passwords/new.html.erb メール送信画面(パスワード変更用)
passwords/edit.html.erb パスワード変更画面
confirmations/new.html.erb メールによる認証を行う画面
unlocks/new.html.erb アカウントのアンロック画面

 

 今回は、devise管理下のuserモデルを使用しているため、controllerもdeviseの管理下に作成しますので、次を実行。

$ rails g devise:controllers users

最後にルーティングを編集、routes.rbに以下の記述を追加。

f:id:natori_gorira:20200505232243p:plain


 最低限ログインするためのページが出来ました。

下記はログインページです。

f:id:natori_gorira:20200505232551p:plain



 今回は "gemの導入" から "ログインページ" までを書きました。続きはまた後日書きます!