迷い人

日々勉強。勉強の先に何か見つかるといいなぁ

【rails】ユーザ管理機能の導入について その1

task管理アプリケーションにユーザ管理機能を実装します。

 

ユーザ管理機能は大まかに言うと

  • ユーザ登録
  • ログイン
  • ログアウト

の機能です。

 

これらの機能を全て作るとなると大変ですが、railsにはdeviseとgemが公開されていて、deviseを導入することで簡単にユーザ管理機能を実現できます。

 

ホントにプログラミング業界は無償で提供されている資源に助けられています。感謝感謝。

 

さて、ユーザ管理機能実装の大まかな流れは

  1. devise gemの導入
  2. userモデル(テーブル)の作成
  3. web画面(view)の作成

 

まずはGemfileの一番下に以下の記述を行います。

gem 'devise'

 

その後コマンドから以下の命令を実行する

$ rails g devise:install
$ rails g devise user

 

後者の命令でユーザ管理のためのデータベースができるので、マイグレーションファイルを編集して、ユーザ管理のためのテーブルを作成します。

 

今回はシンプルにメールアドレス、パスワード、ユーザ名の管理としたいと思います。

emailとpasswordはデフォルトで記述してあるので、ユーザの名前を管理するnameをstring型(要するに文字列型)で追加します。

 

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

#以下省略

 

その後以下のコマンドでuserテーブルが追加されます。

$ bundle exec rake db:migrate

 

これでユーザ管理に必要なテーブルができたので、次はユーザ登録等を行う画面を作成して行きます。

 

こちらも以下のコマンドで基本的な画面が自動生成されます。

$ rails g devise:views

 

ここまででユーザ管理機能の下準備は完了です。次回はユーザ登録やログイン、ログアウト機能を実装したいと思います。