我无法在其他相关问题中找到解决方案,所以我自问。
问题非常简单。这是我得到的错误:
Failure/Error: get 'api/v2/special_keys#show'
ActionController::UrlGenerationError:
No route matches {:action=>"api/v2/special_keys#show", :controller=>"api/v2/special_keys"}
这是我的routes.rb
:
resources :special_keys, only: [] do
collection do
get '', to: 'special_keys#show'
end
end
这是rake routes
的输出:
GET /api/v2/special_keys(.:format) api/v2/special_keys#show {:format=>"json"}
我的规格:
require 'rails_helper'
describe Api::V2::SpecialKeysController do
describe 'GET #show' do
it 'gets the policy and signature' do
get '/api/v2/special_keys'
expect(response.status).to eql 200
end
end
end
答案 0 :(得分:1)
尝试将测试重写为:
require 'rails_helper'
describe Api::V2::SpecialKeysController do
describe 'GET #show' do
it 'gets the policy and signature' do
get '/api/v2/special_keys', {format: :json}
expect(response.status).to eql 200
end
end
end
答案 1 :(得分:0)
尝试:
resource :special_keys, only: [:show]
单数告诉应用程序,只有一个。因此,它只会生成一个show
操作,根本不需要ID,也不需要index
操作。