Deviseの設定手順をまとめてみた。 その2　ViewとControllerのカスタマイズ編

--- 全体の流れ ---
[その1　導入編](http://qiita.com/itboze/items/ea0d9236d89fa24a7a1c)
[その2　ViewとControllerのカスタマイズ編](http://qiita.com/itboze/items/f991d54ff527edb844d9) ←今ココ
[その3　Deviseの日本語化編](http://qiita.com/itboze/items/a1b532004a9a8a57e296)
[その4　ユーザーIDで、ログイン認証編](http://qiita.com/itboze/items/385d3cd539fc7578b52a) 


実運用では、カスタマイズが必須だよねーってことで、
今回は、ログイン画面やサインイン画面をカスタマイズしよーって話。

### 1. deviseのViewをカスタマイズ

* [前回](http://qiita.com/itboze/items/ea0d9236d89fa24a7a1c)、ユーザー管理用のテーブルとして、**users**テーブルを作ってたので、以下のコマンドを実行

```console
$ rails g devise:views users
```

```console
      invoke  Devise::Generators::SharedViewsGenerator
      create    app/views/users/shared
      create    app/views/users/shared/_links.html.erb
      invoke  form_for
      create    app/views/users/confirmations
      create    app/views/users/confirmations/new.html.erb
      create    app/views/users/passwords
      create    app/views/users/passwords/edit.html.erb
      create    app/views/users/passwords/new.html.erb
      create    app/views/users/registrations
      create    app/views/users/registrations/edit.html.erb
      create    app/views/users/registrations/new.html.erb
      create    app/views/users/sessions
      create    app/views/users/sessions/new.html.erb
      create    app/views/users/unlocks
      create    app/views/users/unlocks/new.html.erb
      invoke  erb
      create    app/views/users/mailer
      create    app/views/users/mailer/confirmation_instructions.html.erb
      create    app/views/users/mailer/reset_password_instructions.html.erb
      create    app/views/users/mailer/unlock_instructions.html.erb
```

### 2. deviseのControllerをカスタマイズ

* ここも、**users**テーブルに合わせて、コントローラーを作成

```console
$ rails g devise:controllers users
```

```console
      create  app/controllers/users/confirmations_controller.rb
      create  app/controllers/users/passwords_controller.rb
      create  app/controllers/users/registrations_controller.rb
      create  app/controllers/users/sessions_controller.rb
      create  app/controllers/users/unlocks_controller.rb
      create  app/controllers/users/omniauth_callbacks_controller.rb
====================================================================

Some setup you must do manually if you haven't yet:

  Ensure you have overridden routes for generated controllers in your route.rb.
  For example:

    Rails.application.routes.draw do
      devise_for :users, controllers: {
        sessions: 'sessions'
      }
    end

====================================================================
```
* 使用するコントローラーで、コメントになっているところを外す

* ざっくり、よく使うControllerについて説明すると...
	1. confirmations_controller.rb: ユーザー登録確認メール内のリンクを押下時
	2. passwords_controller.rb: パスワードを忘れた方は。。。の場合
	3. registrations_controller.rb：ユーザー登録時
	4. sessions_controller.rb : ログイン時

### 3.　ルーティング

* 実は、ここがキモ！！

* `config/routes.rb`に、以下の内容を記述

```rb
  devise_for :users, :controllers => {
    :registrations => 'users/registrations',
    :sessions => 'users/sessions'   
  } 
    
  devise_scope :user do
    get "sign_in", :to => "users/sessions#new"
    get "sign_out", :to => "users/sessions#destroy" 
  end

```

### 4. Railsを再起動して、確認。

```console
$ rails s
```

* ちゃんとできましたか？