Rails devise で複数モデルの認証機能を実装

2016/03/14

Rails devise で複数モデルを管理

概要

rails のログイン認証 Gem「devise」のインストール・設定方法を紹介します。
よく「device」とtypoしてる人を見かけますので、間違えないよう注意してください。

今回は、member/・admin/とモジュール分けし、それぞれの認証機能を設置しています。

gem インストール

Gemfile に以下を追加します。


gem 'devise'

bundle install 実行


$ bundle install

devise インストール


$ rails g devise:install

設定ファイルを変更
(/config/initializers/devise.rb)


config.scoped_views = true

devise 設定

user、adminモデルを追加


$ rails g devise user
$ rails g devise admin

それぞれ、member・admin配下にcontroller・viewを生成します。


$ rails g devise:controllers member/users
$ rails g devise:controllers admin/admins

$ rails g devise:views member/users
$ rails g devise:views admin/admins

ルートの設定

/config/routes.rb を設定


namespace :admin do
  devise_for :admins, controllers: {
    sessions:      'admins/sessions',
    passwords:     'admins/passwords',
   registrations: 'admins/registrations'
  }
end

namespace :member do
  devise_for :users, controllers: {
   sessions:      'users/sessions',
    passwords:     'users/passwords',
    registrations: 'users/registrations'
  }
end

後処理

不要なビューファイルが生成されているので削除


$ rails d devise:views

テーブルの生成


$ rake db:migrate
Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 か...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LI...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使ç”...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びã...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームでå...
トップへ戻る