使用jQuery的serializeArray和Rails表单

时间:2012-04-09 21:54:35

标签: javascript jquery ruby-on-rails-3 json

我正在尝试在结帐流程的最终屏幕上显示订单摘要(Rails 3中的buit)。在此之前没有提交任何内容,因此我使用jQuery的serializeArray()来获取表单字段中的所有名称和值,这非常有用。我收集了各种嵌套属性,因此返回的数组相当繁忙,名称为order[donations_attributes][0][amount_in_dollars]

是否有一种简单的方法,在Javascript(或使用jQuery)中将这些名称和值转换为JSON字符串(这样可以更容易地生成我的摘要输出)。例如,像:

{
  "order": {
    "donations_attributes": [
      {
        "amount_in_dollars": 50.95,
        "category": "Some Fund"
      },
      {
        "amount_in_dollars": 90.92,
        "category": "Some Other Fund"
      }
    ],
    "billing_address_attributes": {
      "first_name": "Bob",
      "last_name": "Smith",
      "address1": "123 Whatever Street",
      "and so on": "etc"
    }
  }
}

请记住,我还没有提交任何内容(我也不能),所以我不能用Ruby来做。有没有一种明显,直接的方法,或者我需要手工解析并构建字符串?

1 个答案:

答案 0 :(得分:1)

您可以按原样将该数据传递到data中的JQuery.ajax(...)参数,它将在控制器方法中以parama结尾,并查看您调用的操作。例如params[:order][:donations_attributes][0][:category] == "Some Fund"

如果要将新网址加载到浏览器中,可以对数据使用JQuery.serialize()并将其附加到您的网址(中间带有“?”)以使用相应的查询创建网址字符串。