尝试respond_to format.xml时出现未知格式错误

时间:2014-06-26 00:05:27

标签: xml ruby-on-rails-4

我正在尝试解析一个简单的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

1 个答案:

答案 0 :(得分:1)

Rails正在处理 / 而不是XML或JSON,所以为什么不尝试以下代码

删除respond_to块,只需:

render :nothing => true, status: :ok