Rails4 管理用画面の作り方のメモ

管理用画面を作ってみた。

事前準備として、deviseで一般ユーザーuserと管理者ユーザーadminを作成しておく。

Gemfileに下記のように記述する。

gem "devise"

コマンドプロンプトでbundle installを実行する。

bundle insatall

コマンドプロンプトで下記を実行する。

rails generate devise:install

コマンドプロンプトで下記を実行し、Userクラスを作成する。

rails generate devise User

コマンドプロンプトで下記を実行し、Adminクラスを作成する。

rails generate devise Admin

コマンドプロンプトマイグレーションを実行。

rake db:migrate


通常ユーザーと管理者ユーザーでコントロールを分ける。

たとえば、Companyクラスの編集機能を通常ユーザーと管理者ユーザーで分けたい場合、まずは通常ユーザー用にScaffoldですべてを作成します。

rails generate scaffold company name:string is_deleted:boolean

管理者ユーザー用にコントローラーを作成します。

rails generate controller admin/companies

\controllers\admin\companies_controller.rbにbefore_filterでadminログイン時のみのアクセスに限定する。

class Admin::CompaniesController < ApplicationController
  before_filter :authenticate_admin!
end

routes.rbでルーティングを設定する。

devise_for :admins

devise_for :users

resources :companies

namespace :admin do
  resources :companies
end

あとは、一般ユーザー用と管理者ユーザー用にコントローラやビューを作成する。

リンクを作成するときは、admin_companies_pathやnew_admin_company_path等を使用する。

参照:
Ruby on Rails3 ユーザー認証用に「Devise」をインストール - ayaketanのプログラミング勉強日記
NAMAKESUGI | [Rails3] 管理画面とフロント画面のroutesの綺麗な分離方法
Rails3 routes.rb まとめ | akkunchoi@github