2020年4月27日月曜日

簡易SNSを作ってみよう(3)

ユーザーモデルとコントローラの設定
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

ブラウザで http://localhost:3000 へアクセスし,ログイン画面が出ることを確かめる. 

国際化への準備
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 件のコメント:

コメントを投稿