0

对于我的范围路由,我似乎无法解决我的 rspec 控制器规范中的“get”方法。

我正在为我的“访问者”控制器确定路由范围,以便它们位于“访问者”模块命名空间内,但位于路由的根目录。所以'mysite.com/foo' 转到Visitor::FooController。

配置/路由.rb

scope :module => 'visitor' do
  resources :inquiries
end

规格/控制器/访问者/inquiries_controller_spec.rb

require 'spec_helper'

describe Visitor::InquiriesController do
  describe 'GET new' do
    it 'should render template visitor/inquiries/new' do
      get :new
    end
  end
end

应用程序/控制器/访问者/inquiries_controller.rb

class Visitor::InquiriesController < Visitor::BaseController
  def new
  end
end

当我运行规范时,我收到以下错误。

No route matches {:controller=>"visitor/inquiries", :action=>"new"}

我尝试为 get 添加一些额外的参数(例如:url => 'inquiries/new'、:controller => 'inquiries'),但我似乎无法解决这个问题。用我的浏览器点击“查询/新”可以正常工作,并表明我的路线按预期工作。

我是 rspec 的新手,所以这里可能存在一些我不理解的基本问题。否则,我正在寻找一种方法来解决这个问题,以便我可以测试这些“访客”控制器。任何帮助表示赞赏!

4

2 回答 2

1

当我第二天重新启动计算机时,问题就解决了。Spork 似乎有某种问题导致了这个问题。我不确定这个问题是否可以删除,但它可能不会为 Stackoverflow 提供很多价值。

于 2011-02-24T00:57:27.537 回答
-1

看看你的 config/routes.rb 取消注释跟随行: match ':controller(/:action(/:id(.:format)))' 现在它应该可以工作了

于 2011-01-07T16:16:02.913 回答