- 更新日: 2013年12月30日
- Devise
Devise の User モデルに admin カラムを追加して管理者権限ユーザーを作成する
スポンサーリンク
Devise で作成した認証用の User モデルに、admin カラムを追加して管理者権限ユーザーを作成します。
— 環境 —
Rails 4.0.1
Devise 3.2.2
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
スポンサーリンク
users テーブルに admin カラムを追加するマイグレーション
まずは、admin 属性を追加するマイグレーションを作成します。admin 属性の型は boolean にします。
1 2 3 |
$ bundle exec rails generate migration add_admin_to_users admin:boolean |
マイグレーションファイルを以下のように編集。default 値を false(一般ユーザー)とします。これが true だと管理者権限を持つユーザーとなる。
db/migrate/***_add_admin_to_users.rb
1 2 3 4 5 |
class AddAdminToUsers < ActiveRecord::Migration def change add_column :users, :admin, :boolean, null: false, default: false end end |
マイグレート実行して、テスト用DBをを用意。
1 2 3 4 |
$ bundle exec rake db:migrate $ bundle exec rake test:prepare |
DBの users テーブルに以下のように、admin カラムが追加されました。デフォルト値は 0(false)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
mysql> desc users; +------------------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------------------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | email | varchar(255) | NO | UNI | | | | encrypted_password | varchar(255) | NO | | | | | reset_password_token | varchar(255) | YES | UNI | NULL | | | reset_password_sent_at | datetime | YES | | NULL | | | remember_created_at | datetime | YES | | NULL | | | sign_in_count | int(11) | NO | | 0 | | | current_sign_in_at | datetime | YES | | NULL | | | last_sign_in_at | datetime | YES | | NULL | | | current_sign_in_ip | varchar(255) | YES | | NULL | | | last_sign_in_ip | varchar(255) | YES | | NULL | | | created_at | datetime | YES | | NULL | | | updated_at | datetime | YES | | NULL | | | uid | varchar(255) | NO | MUL | | | | provider | varchar(255) | NO | | | | | name | varchar(255) | NO | | | | | admin | tinyint(1) | NO | | 0 | | +------------------------+--------------+------+-----+---------+----------------+ 17 rows in set (0.00 sec) |
管理者権限を持つユーザーは、admin カラムを true(MySQLの型では1)にして作成します。以上です。
スポンサーリンク
パーフェクト Ruby on Rails は、最近読んだ Rails 本の中では一番役に立った本です。Chef や Capistrano など Rails と共によく使用される技術にも触れてあります。Ruby on Rails 4 アプリケーションプログラミングは、入門的な内容で Rails の機能全体を網羅されています。
- Devise の関連記事
- RailsのDevise認証機能での実装チェックリストまとめ
- Deviseで送信されるメールのfrom(送信者メールアドレス)を変更
- Facebook の OAuth 認証で OAuthException(191)エラー
- Rails Devise でパスワードリセットなどのメールテンプレート(Mailer ビュー)をカスタマイズ
- Rails + Devise 環境でのフレンドリーフォワーディング機能を修正
- Deviseでユーザー登録完了時にウェルカムメールを送信する
- Rails Devise でユーザーがプロフィール情報を更新後に元のページにリダイレクトさせる
- Devise でユーザーがパスワードなしでアカウント情報を変更するのを許可
- Rails Deviseの日本語化辞書ファイル(devise.ja.yml)
- Rails + Devise で admin ユーザー(管理者)を削除できないようにする
Leave Your Message!