rails hash to javascriptjson参数列表不?

时间:2015-09-10 21:18:40

标签: javascript arrays ruby-on-rails-4 hash datatables

我正在尝试从Rails控制器发送一个参数列表作为对ajax调用的json响应..

def build_json_data
  columns_array = []
  for heading in @headings do
    columns_array << { data: heading[:value]}.with_indifferent_access
  end
  @data = {columns: columns_array}.with_indifferent_access
end

收到的是哈希数组:

  @data[:columns] = [
     {"data"=>"Table"},
     {"data"=>"Owner"},
     {"data"=>"Statu"},
     {"data"=>"Origine"},
     {"data"=>"Source"},
     {"data"=>"Updated At"}
     ]

我正试着把它当作:

  @data[:columns] = [
     {"data": "Table"},
     {"data": "Owner"},
     {"data": "Statu"},
     {"data": "Origine"},
     {"data": "Source"},
     {"data": "Updated At"}
     ]
     # this is what DataTables jQuery plugin wants a an array of column header

如何发送正确的数组?

1 个答案:

答案 0 :(得分:0)

我在这里缺少一些上下文,但是这里有:

@headings = [
  { value: "Table" },
  { value: "Owner" },
  { value: "Statu" },
  { value: "Origine" },
  { value: "Source" },
  { value: "Updated At" }
]

def build_json_data
  @headings.map { |heading| { data: heading[:value] } }.to_json
end

在这种情况下,build_json_data会将您的收藏作为JSON返回。这应该适合返回请求客户端。这是输出为JSON:

"[{\"data\":\"Table\"},{\"data\":\"Owner\"},{\"data\":\"Statu\"},{\"data\":\"Origine\"},{\"data\":\"Source\"},{\"data\":\"Updated At\"}]"

如果我遗失了某些内容,请分享一些关于您正在尝试做的事情的更多背景信息,我将很乐意为您提供帮助。