devise を設定し,ユーザーモデルとコントローラを作成する.
ユーザーモデルの作成
ユーザーモデルを作成する.メールを使いたくないので,:recoverableの機能は使わない(該当部分を削除する).
【手順】
bin/rails g devise User
vi app/models/user.rb
(以下を修正)
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
end
↓
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:rememberable, :validatable
end
bin/rails db:create
bin/rails db:migrate
コントローラの作成
コントローラを作成する.
【手順】
bin/rails g controller home index
ログインしていないとログイン画面にリダイレクトするように動作を定義する.
【手順】
vi app/controllers/home_controller.rb
(以下を追記)
class HomeController < ApplicationController
before_action :authenticate_user!, only: :index
def index
end
end
確認
サーバを起動し,ログイン画面が出ることを確認する.
bin/rails s
国際化への準備
devise のメッセージを国際化できるようにしておく.また,タイムゾーンをTokyoにしておく.
【手順】
vi config/application.rb
(以下を追記)
…(中略)…
class Application < Rails::Application
…(中略)…
I18n.available_locales = %i(ja en)
I18n.enforce_available_locales = true
I18n.default_locale = :en
config.time_zone = 'Asia/Tokyo'
end
…(中略)…
0 件のコメント:
コメントを投稿