Devise簡易メモ

Deviseオプション

:database_authenticatable データベースでアカウントのパスワードを管理できるように
:registerable ユーザーがアカウント作成、編集、削除できるように
:recoverable パスワードの再問い合わせができるように
:rememberable 自動的にログインする機能ができるように
:trackable ログイン履歴を取れるように
:validatable 入力されたパスワードやメールアドレスをチェックできるように
:token_authenticatable API等の開発用にトークン認証ができるように
:encryptable パスワード暗号化のカスタムを有効にする
:confirmable ユーザー登録完了時に認証確認メールを送信されるように
:lockable パスワードをミスするとアカウントにロックがかかるように
:timeoutable 一定時間操作がなければログアウトするように
:omniauthable omniauth と連携できるように


管理者がユーザー登録を行うようにするには、Devise::RegistrationsController をオーバーライドすればいいとのこと。

参考?
http://stackoverflow.com/questions/9799593/how-to-make-devise-registrationscontroller-to-show-sign-up-page-only-if-user-is

  • コントローラー生成
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

https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb