我有一个rails应用程序,其中一个控制器在我的控制器中有一个变量@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
任何帮助将不胜感激!
我猜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