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

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

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

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

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...

rbenv環境でRuby on Railsのアプリケーションを一瞬で自動生成

アプリケーション構築時に最初に行う手順 概要 アプリケーションを作成するまでの手順を記載しています。 rbenvなどの環境が設定済と仮定して話を進めま...

Rails devise・authority・rolifyで権限付きの認証機能

devise・authority・rolify 概要 3つのGemを使用して、権限付き認証機能を実装します。 gem インストール Gemfile ...

jQuery UI ドラッグ&ドロップで並び替え sortableの使用方法

sortable 概要 jQuery UIを使用して、ドラッグ&ドロップで並び替えを行います。 sortableを使用することで、一瞬で実装できちゃいます...

jQuery UIでドラッグ&ドロップ draggableとdroppableの使用方法

draggableとdroppable 概要 jQuery UIを使用して、ドラッグ&ドロップを行います。 要素の移動やコピーをGUI操作で行うときなどに...
トップへ戻る