deviseとは
webアプリケーションにおいて認証機能を実装するためのgemです。
導入方法
1. ターミナルにてcdコマンドを使い、作成しているAppのディレクトリ内に移動する
2. Gemfile内で追記する
.Gemfile
gem 'devise'
3.ターミナル内にてGemをインストール
.terminal
bundle install
gemをインストールした後はローカルサーバーを再起動する
4.deviseの設定ファイルを作成
.terminal
rails g devise:install
deviseのモデルを作成
1.モデルの作成
.terminal
rails g devise [モデル名]
2.テーブルに必要なカラムを追加
モデルを作成するとdb/migrateのディレクト内に先程生成したdeviseのモデルテーブルが生成されている。そのファイル内で追加を行う
ex)nicknameを文字列型、空なしにする場合
.db/migrate/20XXXXXXXXX_devise_create_***.rb
def change
create_table :[***] do |t|
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
+ t.string :nickname, null: false
3.データーベース設計したらマイグレーションを実行
.terminal
rails db:migrate
バリデーションの設定
.app/models/user.rb
+ validates :password
+ validates :nickname
バリデーションを設ける事で設定したカラムが空欄の時はデーターベースに保存されず、エラーを返す様に設定します。
ビューファイルを作成
1.ビューファイルを生成
.terminal
rails g devise:views
app/views/deviseのディレクト内に新規登録とログイン画面のviewファイルが自動に生成される
2.viewファイルを編集
- registrationsは新規登録画面
- sessionsはログイン画面
- form_withプロパティなどを使いフォーム画面を作成します.