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