Deviseオプション
:database_authenticatable | データベースでアカウントのパスワードを管理できるように |
:registerable | ユーザーがアカウント作成、編集、削除できるように |
:recoverable | パスワードの再問い合わせができるように |
:rememberable | 自動的にログインする機能ができるように |
:trackable | ログイン履歴を取れるように |
:validatable | 入力されたパスワードやメールアドレスをチェックできるように |
:token_authenticatable | API等の開発用にトークン認証ができるように |
:encryptable | パスワード暗号化のカスタムを有効にする |
:confirmable | ユーザー登録完了時に認証確認メールを送信されるように |
:lockable | パスワードをミスするとアカウントにロックがかかるように |
:timeoutable | 一定時間操作がなければログアウトするように |
:omniauthable | omniauth と連携できるように |
管理者がユーザー登録を行うようにするには、Devise::RegistrationsController をオーバーライドすればいいとのこと。
- コントローラー生成
rails g controller user/registration
- app/controllers/registrations_controller.rb
class User::RegistrationsController < Devise::RegistrationsController skip_before_filter :require_no_authentication before_filter :authenticate_user! def new super end end
cp app/views/devise/registrations/new.html.slim app/views/user/registrations/
ルーティング設定の変更も必要
- config/routes.rb
devise_for :users, :controllers => {:registrations => "user/registrations"}
オーバーライドするコントローラー
- devise / app / controllers / devise / registrations_controller.rb