-1

我有一个 rails4 应用程序,其中一个控制器@data在我的控制器中有一个变量,如下所示:

@data = {
  2013 => {sal: 1000, exp: 400},
  2014 => {sal: 1170, exp: 460},
  2015 => {sal: 660, exp: 1120},
  2016 => {sal: 1030, exp: 540}
}

我有关联的 json jbuilder 文件,我想用它在这个结构中呈现 json

[
  ['Year', 'Sales', 'Expenses'],
  ['2013',  1000,      400],
  ['2014',  1170,      460],
  ['2015',  660,       1120],
  ['2016',  1030,      540]
]

我正在查看https://github.com/rails/jbuilder,但无法弄清楚如何实现我的目标。

这没有帮助..

json.array! @data do |d|
  ???
end

任何帮助将不胜感激!

4

1 回答 1

0

我猜 jbuilder 不适合您的目的。你想要数组,它返回哈希值。

它可以通过以下方式完成:

@data = {
  2013 => {sal: 1000, exp: 400},
  2014 => {sal: 1170, exp: 460},
  2015 => {sal: 660, exp: 1120},
  2016 => {sal: 1030, exp: 540}
}
@mod_data = [['Year', 'Sales', 'Expenses']]
@data.each { |k, v| @mod_data << [k, v[:sal], v[:exp]] }

# or briefly, but perhaps less readable

@data.each_with_object([['Year', 'Sales', 'Expenses']]) { |(k, v), o| o << [k, v[:sal], v[:exp]] } # returns array
于 2014-05-27T21:24:19.333 回答