cd siliconvalley

I will startup at San Francisco !

Sessionコントローラのルートエラー

Sessionコントローラを実装してみました。概念としては、Sign inページを示すnewアクション、Sign inを処理するcreateアクション、そしてSign outをするdestroyアクションとなります。

 
というわけで、コントローラは下記のようになります。
- app/controllers/session_controller.rb
class SessionsController < ApplicationController
 
def new
end
 
def create
end
 
def destroy
end
end
 
ある程度やってみて、テストを実行しました。
- authenticationのテスト内容
 
require 'spec_helper'
 
describe "Authentication" do
 
  subject { page }
 
  describe "signin page" do
    before { visit signin_path }
// routesのチェック
 
    it { should have_content('Sign in') }
    it { should have_title('Sign in') }
// htmlのチェック
  end
end
 
それでは、テスト実行
 
$ bundle exec rspec spec/
 

  4) Authentication signin page 

     Failure/Error: before { visit signin_path }

     ActionController::RoutingError:

       uninitialized constant SessionController

     # ./spec/requests/authentication_pages_spec.rb:8:in `block (3 levels) in <top (required)>'

 

  5) Authentication signin page 

     Failure/Error: before { visit signin_path }

     ActionController::RoutingError:

       uninitialized constant SessionController

     # ./spec/requests/authentication_pages_spec.rb:8:in `block (3 levels) in <top (required)>'

 
これによると、Routing Errorが出ちゃっています。ルーティングページを見てみると、下記二つのミスがありました。
 
・resources :sessions, only: [:new, :create, :destroy]の記入漏れ
・match '/signout' to: 'session#destroy',  via: "delete"がvia: "get"になっていました