【rails】ログイン機能「devise」について
deviseとは
railsでログイン機能を実装する際の定番のライブラリ
参考GitHub – heartcombo/devise: Flexible authentication solution for Rails with Warden.GitHub
deviseのgemを導入する
Gemfileに追加する
gem 'devise'
warpで以下を順番に実行する
bundle install
rails generate devise:install
インストールが完了し、説明書きも表示される

1. mailer(メール)の設定をする
- config/environments/development.rbを開く
- 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
- ユーザー情報をデータベースに保存しておかないといけない
(ユーザー登録するとき・ログインするとき 等) - (SQLを使わなければいけないところを)Active Recordを使って
- ユーザーを管理するためのモデルを作る
↓ 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のファイルを作成する
[

参考
devise.ja.yml
Gist
](https://gist.github.com/tutuco39/53e600bc6dab8b1d6e2c336af48d112e)
#DAY19