Rspec控制器路由错误

Rspec控制器路由错误,rspec,rspec-rails,Rspec,Rspec Rails,我定义了以下路线 match '/admin', :to => "admin/dashboard#index", :module => "admin" match '/admin/sales', :to => "admin/dashboard#sales", :module => "admin" 在仪表板\u控制器\u规范中,我添加了以下内容: describe Admin::DashboardController do describe "#sales"

我定义了以下路线

  match '/admin', :to => "admin/dashboard#index", :module => "admin"
  match '/admin/sales', :to => "admin/dashboard#sales", :module => "admin"
在仪表板\u控制器\u规范中,我添加了以下内容:

describe Admin::DashboardController do
  describe "#sales" do
    it "should set schedule" do
      get :sales
      assigns(:schedule).should_not be_nil
    end
  end
end
运行测试时,出现以下错误:

ActionController::RoutingError: No route matches {:action=>"sales", :controller=>"admin/dashboard"}
有什么想法吗? 我猜是和模块有关


谢谢,

请注意,您在分配中有一个打字错误(您有助理)。

我已经成功地复制了这个规范(Rails 3)

dashboard_controller.rb文件必须位于
app/controllers/admin/

这是我的快速测试:

class Admin::DashboardController < ApplicationController
  def sales
    @schedule = "test"
    render :nothing => true 
  end
end

我正在为我的公司开发一个Rails引擎gem,它为我们正在运行的应用程序提供API。我们仍然在使用Rails 3.0.9和最新的Rspec Rails(2.10.1)。我遇到了类似的问题,我定义了如下路线:

match '/companyname/api_name' => 'CompanyName/ApiName/ControllerName#apimethod'
我遇到了类似的错误,比如:

ActionController::RoutingError:
 No route matches {:controller=>"company_name/api_name/controller_name", :action=>"apimethod"}
我花了很多时间试图弄清楚如何让我的测试正常进行。不同版本的Rspec,使用嵌套作用域重新定义我的路由,等等

事实证明,我只需要在下划线的情况下重新定义我的路由,以便RSpec能够匹配它

match '/companyname/api_name' => 'company_name/api_name/controller_name#apimethod'

我猜Rspec控制器测试使用基于下划线大小写的反向查找,而Rails将设置并解释路由,如果您在camelcase或下划线大小写中定义它。

感谢您发出输入错误的信号,但它在到达之前失败了
match '/companyname/api_name' => 'company_name/api_name/controller_name#apimethod'