4

我有一个失败的测试,我很难理解。我class Users::QueriesController < ApplicationController在 app/controllers/users/queries_controller.rb 有一个控制器,它有一个show动作和一个相应的命名空间路由:

namespace :users do
  resources :queries
end

我还在 test/controllers/users/queries_controller_test.rb 进行了测试:

require 'test_helper'

class Users::QueriesControllerTest < ActionController::TestCase

  test "accessing :show action" do
    get :show
    assert_response :success
  end

end

运行此测试会导致ActionController::UrlGenerationError: No route matches {:controller=>"users/queries", :action=>"show"}.

运行rake routes包括这一行:users_query GET /users/queries/:id(.:format) users/queries#show.

这里出了什么问题?我正在使用 Rails 4.0.0。

4

1 回答 1

8

我认为您需要为 show 操作提供一个 id

  test "accessing :show action" do
    get :show, {:id => 1}
    assert_response :success
  end

这是rails 4之前的正确方法。

请试一试,让我知道结果。

于 2013-07-05T05:31:59.787 回答