2012-12-07 105 views
2

我試圖測試我在Rails 3的應用程序使用RSpec sessions_controller,但要跨越這個錯誤來,當我在我的sessions_controller_spec.rb運行rspec的:Rspec的「無路由匹配」的錯誤

ActionController::RoutingError: 
    No route matches {:controller=>"sessions", :action=>"create"} 

這裏是所有相關文件:

routes.rb

match 'event' => 'event#create', via: [:post] 
match 'event/agenda' => 'event#agenda', via: [:get] 
match 'testLogin' => 'application#test_login', via: [:get] 
post 'session' => 'session#create' 

sessions_controller.rb

class SessionsController < ApplicationController 
    def create 
    #MY CODE HERE 
    end 
end 

sessions_controller_spec.rb

require 'spec_helper' 

describe SessionsController, :type => :controller do 

    describe "POST #create" do 

    context "invalid params" do 
     it "returns a response with status failed if all required parameters are not passed in" do 
      post "create" 
      response.body.status.should eq("failed") 
     end 
    end 
    end 
end 

如果有任何其他的信息,我可以提供幫助,讓我知道。非常感謝!

回答

4
post 'session' => 'session#create' 

你的路由定義正在尋找一個SessionController,但你已經定義了一個SessionsController。修復你的路線。

post 'session' => 'sessions#create' 
+0

我甚至會寫'post'sessions'=>'sessions#create''這會更像休息。 – nathanvda

+0

非常感謝!這些都是我在拉下全能手後想念的東西-_-。 – MrJaeger

相關問題