1

我正在尝试对控制器进行 ajax 调用,该控制器又从模型中调用一个方法并向我返回一个值数组。但我无法在 ajax 中得到任何响应。我需要根据响应数据设置文本字段的值。

我的 ajax 代码是用 .coffee.js 编写的:

$.ajax({
        url: '/addresses/billing_address_to_string',
        type: "POST"
        dataType: "JSON"
        success: (data) ->
          $('#billing_address_address_line1').val(data)
      }).done

在我的控制器中:

respond_to :json, only: [:billing_address_to_string]
def billing_address_to_string
    address = Address.last.billing_address_to_string1
    respond_with address
  end

模型方法是:

def billing_address_to_string1
    address = []
    address << [name, street, street_qualifier].reject(&:blank?)
    address << [city, state_or_region, postal_code].reject(&:blank?)
    address << [phone_number]
  end

任何帮助将非常感激:)

4

1 回答 1

1

是否Address.last.billing_address_to_string1返回一个字符串?如果是这样,您需要将其包装在一个散列中以对其进行 JSON 编码。

尝试

 respond_with({:address => address})

那么JS应该是

 $.ajax({
    url: '/addresses/billing_address_to_string',
    type: "POST"
    dataType: "JSON"
    success: (data) ->
      $('#billing_address_address_line1').val(data.address)
  })
于 2013-11-13T09:23:17.377 回答