【rails】ログイン機能「devise」について

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

deviseとは

railsでログイン機能を実装する際の定番のライブラリ


deviseのgemを導入する

Gemfileに追加する

gem 'devise'

warpで以下を順番に実行する

bundle install

rails generate devise:install

インストールが完了し、説明書きも表示される


1. mailer(メール)の設定をする

  1. config/environments/development.rbを開く
  2. mailerに関することなので、該当付近に指定されたコードを貼り付ける
# Don't care if the mailer can't send.
  
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

localhost3000からメールを送るよ、という意味

(ユーザー登録のときにメールが飛ばしたりするので、そのために設定する)


2. root to: “home#index”

「root_urlをconfig/routes.rbに設定しましょう」

→ こちらは最初に設定済みなのでok


3. flash messages

「フラッシュメッセージが表示されるようしましょう」

→ すでに設定済みなのでok


4. rails g devise:views

「deviseのviewsをカスタマイズするならrails g devise:viewsを実行しましょう」

rails g devise:views

ログイン画面のhtmlやcssを自由にカスタマイズするための設定

↓ 実行するとたくさんファイルが生まれる


rails generate devise モデル名

githubのドキュメントに戻り、以下を実行する(モデル名は「User」とする)

rails generate devise User

  1. ユーザー情報をデータベースに保存しておかないといけない
    (ユーザー登録するとき・ログインするとき 等)
  2. (SQLを使わなければいけないところを)Active Recordを使って
  3. ユーザーを管理するためのモデルを作る

↓ userテーブル、userモデルが作成されている


VScodeのdb/migrate/日付_devise_create_users.rbのファイルができている

class DeviseCreateUsers < ActiveRecord::Migration[6.0]
 #  以下略

migrationファイル(設計書)が出来上がったので、データベースに反映させる

rails db:migrate

一度サーバーを落とし、rails sで再度サーバーを立ち上げる


ログイン機能の完成

こまでの手順でログイン機能はすべて完了している

自動でurlやアクションを作成してくれている

(この下にもたくさん出来上がっている)


「/users/sign_up」と手入力すると、すでに項目ができあがっている

(ここに適当に入力しても、とりあえずログインもできる)


app/viewsにdeviseが生まれている

さらに複数のhtmlファイルが生まれている

まず「.erb」のhtmlをすべてhamlに書き換える

bundle exec rake haml:replace_erbs

日本語表記にする

導入しただけではすべて英語表記なので、日本語にする

config/locales/devise.en.ymlが英語表記のファイル

同じところにdevise.ja.ymlのファイルを作成する


#DAY19