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

data#g​​et と一致させるために /things/:id/data を使用する必要があることをテストで指定するにはどうすればよいですか?

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

声を出して疑問に思う、あなたがに変更getした場合show、それは機能しますか?もしそうなら、私は似たような動詞名のメソッド名を上書きすることは物事を台無しにすることを恐れています。それを除けば、あなたのルートテストは何と言っていますか?

于 2013-03-19T09:56:54.317 に答える