0

在我的 config/routes.rb 中,我创建了一个针对数据控制器的特定路由:

match '/things/:id/data' => 'data#get', :via => :get

当我设置功能测试时,出现以下错误:

ActionController::RoutingError: No route matches {:controller=>"data", :action=>"get"}

我的测试是:

require 'test_helper'

class ActionController::TestCase
  include Devise::TestHelpers
end

class DataControllerTest < ActionController::TestCase
  setup do
    sign_in users(:one)
  end

  test "should get last data of thing" do
    get :get
    assert_response :success
  end

end

如何在测试中指定 /things/:id/data 需要用于匹配 data#g​​et ?

4

2 回答 2

2

试试这个

test "should get last data of thing" do
  get :get, id => "ID OF YOUR THING"
  assert_response :success
end

data 是 member_action 所以你需要提供你的资源的 ID(你的情况)

于 2013-03-19T10:26:43.637 回答
0

大声想知道,如果您更改getshow,它有效吗?如果是这样,我担心为相似的动词名称覆盖方法名称会搞砸。除此之外,您的路线测试说明了什么?

于 2013-03-19T09:56:54.317 回答