2012-12-07 107 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

相关问题