簡體   English   中英

在rails / rspec中沒有控制器的路由的“無路由匹配”錯誤

[英]“No route matches” error for route without a controller in rails/rspec

環境:Rails 3.2.12,rspec 2.12

我正在嘗試使用非常簡單的路由測試來引導應用程序。 測試失敗,我看不出有什么問題。

這是失敗的測試:

# spec/routing/meow_route_spec.rb
require 'spec_helper'
describe "meow routes" do
  it "routes post /meows to meows#create" do
    expect(:post => "/meows").to route_to(
      :controller => "meows",
      :action => "create",
    )
  end
end

而我的路線:

# config/routes.rb
Meowserver::Application.routes.draw do
  resources :meows
end

rake routes告訴我:

polk:meowserver dpassage$ rake routes
    meows GET    /meows(.:format)          meows#index
          POST   /meows(.:format)          meows#create
 new_meow GET    /meows/new(.:format)      meows#new
edit_meow GET    /meows/:id/edit(.:format) meows#edit
     meow GET    /meows/:id(.:format)      meows#show
          PUT    /meows/:id(.:format)      meows#update
          DELETE /meows/:id(.:format)      meows#destroy

但是當我運行rspec時,出現此錯誤:

1) meow routes routes post /meows to meows#create
  Failure/Error: expect(:post => "/meows").to route_to(
    No route matches "/meows"
  # ./spec/routing/meow_route_spec.rb:4:in `block (2 levels) in <top (required)>'

這到底是怎么回事? 到目前為止,這些確實是我應用程序中唯一重要的文件-甚至沒有任何控制器或模型,只是嘗試從外部構建。

好吧,事實證明,添加控制器可以解決此問題。 我添加了這個:

# app/controllers/meows_controller.rb
class MeowsController < ApplicationController
end

...現在測試通過了。 非常令人沮喪的錯誤消息!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM