我正在尝试解析一个简单的XML POST请求并发回200状态作为响应,但我收到一个未知的格式错误,但我不明白为什么。该操作表示处理为 / 而不是xml。任何帮助都会很棒!
ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/locations_controller.rb:171:in `vz_api'
Started POST "/vz_api" for 127.0.0.1 at 2014-06-25 19:52:27 -0400
Processing by LocationsController#vz_api as */*
def vz_api
require 'nokogiri'
xml_doc = Nokogiri::XML(request.body.read)
vin = xml_doc.xpath("//VIN").inner_text
@truck = Truck.find_by(vin: vin)
@location = @truck.location
lat = xml_doc.xpath("//Latitude").inner_text
lng = xml_doc.xpath("//Longitude").inner_text
heading = xml_doc.xpath("//Heading").inner_text
speed = xml_doc.xpath("//Speed")[0].inner_text
@location.update_attributes(longitude: lng, latitude: lat, speed: speed, direction: heading)
respond_to do |format|
format.xml do # format.json
render :nothing => true, :status => :ok
# return true
end
end
end
答案 0 :(得分:1)
Rails正在处理 / 而不是XML或JSON,所以为什么不尝试以下代码
删除respond_to块,只需:
render :nothing => true, status: :ok