Ruby on rails 获得;意外标记“;Rails请求规范的错误
我有以下要求规范:Ruby on rails 获得;意外标记“;Rails请求规范的错误,ruby-on-rails,rspec,Ruby On Rails,Rspec,我有以下要求规范: require 'rails_helper' RSpec.describe 'creating an instance', type: :request do it 'creates an instance' do headers = { 'CONTENT_TYPE' => 'application/json' } post '/api/v1/instances', params: { instance: {
require 'rails_helper'
RSpec.describe 'creating an instance', type: :request do
it 'creates an instance' do
headers = {
'CONTENT_TYPE' => 'application/json'
}
post '/api/v1/instances', params: {
instance: {
instance_id_string: 'abc123',
public_hostname: '0.0.0.0'
}
}, headers: headers
expect(response.body).to eq('asdf')
end
end
当我运行它时,我得到:
ActionDispatch::Http::Parameters::ParseError:
767:在'instance[instance\u id\u string]=abc123&instance[public\u hostname]=0.0.0'处出现意外令牌
我不知道我写测试的方式会有什么问题。有什么想法吗?将我的测试改为以下方式有效:
require 'rails_helper'
RSpec.describe 'creating an instance', type: :request do
it 'creates an instance' do
params = {
instance: {
instance_id_string: 'abc123',
public_hostname: '0.0.0.0'
}
}
post '/api/v1/instances', params: params
expect(response.body).to eq('asdf')
end
end
内容类型是application/json。您应该将参数散列转换为json
params = { instance: {
instance_id_string: 'abc123',
public_hostname: '0.0.0.0'
}}
post '/api/v1/instances', params: params.to_json, headers: headers