1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Userモデル作成

Posted at

今週から人生初のオリジナルアプリの作成に取り掛かる。

作りたいアプリはグループ内で共有して使えるカレンダーアプリ。
コメント機能も実装して、グループ内でチャットもできるようにしたい。

昨日までの時点で一通りの企画と設計は完了。

85678106-57E3-4FAE-85E9-4B6551CD7119.png

usersテーブルの「所属名」と「部署名」は、同じ意味合いに気づき、所属名は削除することに。

早速rails newコマンドでアプリを新規作成。

ここからの手順としては以下の通り。
1: Userモデル作成
2: Groupモデル作成
3: Calendarモデル作成
4: Commentモデル作成

というわけで、本日はUserモデルに取り掛かる。

rails g devise:installrails g devise userを実行。

カラムを追加

..._devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[6.0]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :name,               null: false, default: ""
      t.string :email,              null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
      t.string :department_name

バリデーションは以下の通り。

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
  validates :name, presence: true
  validates :encrypted_password,:password,:password_confirmation,length:{minimum:6},format:{with: /(?=.[a-zA-Z])(?=.\d)[a-zA-Z\d]{6,}/}
  validates :department_name,  length: { maximum: 50 }
end

新規登録には、メアド、パスワード以外に名前も必須とした。
部署名は任意だが、文字数50文字までに制限している。

続いてビューファイルの追加。
rails g devise:viewsを実行。

ローカルサーバーを起動してみる。

あれ?デフォルトのサインイン画面が出ない?

なにか間違っているのかと、30分位考えたが、
ルーティングとコントローラーを設定していなかっただけだった笑
初歩的ミス・・・

rails g controller usersを実行。
ユーザーの詳細ページをトップページにしようと思っていたいので、以下の2つを記述。

routes.rb
Rails.application.routes.draw do
  devise_for :users
  root to: "users#show"
  resources :users, only: [:show]
end
user_controller.rb
class UsersController < ApplicationController
  def show    
  end
end

さらにログアウト状態は常にログインページへ遷移させたいので、以下も記述。

application_controller.rb
class ApplicationController < ActionController::Base
  before_action :authenticate_user!
end

ローカルサーバーをリロード。
スクリーンショット 2022-03-05 1.09.34.png

できた!!
いつもの味気ないページ笑

という事で、装飾はまた明日。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?