※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
deviseとは
railsでログイン機能を実装する際の定番のライブラリ
Gemfileに追加する
gem 'devise'
warpで以下を順番に実行する
bundle install
rails generate devise:install
インストールが完了し、説明書きも表示される
- 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からメールを送るよ、という意味
(ユーザー登録のときにメールが飛ばしたりするので、そのために設定する)
「root_urlをconfig/routes.rbに設定しましょう」
→ こちらは最初に設定済みなのでok
「フラッシュメッセージが表示されるようしましょう」
→ すでに設定済みなのでok
「deviseのviewsをカスタマイズするならrails g devise:views
を実行しましょう」
rails g devise:views
ログイン画面のhtmlやcssを自由にカスタマイズするための設定
↓ 実行するとたくさんファイルが生まれる
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のファイルを作成する
#DAY19