Ruby on rails jbuilder空数组删除密钥
我的控制器返回Ruby on rails jbuilder空数组删除密钥,ruby-on-rails,ruby,jbuilder,Ruby On Rails,Ruby,Jbuilder,我的控制器返回@quotes,它可以是空数组 然后,我呈现以下视图 json.set! :quotes do @quotes.each do |quote| json.set! quote.id do json.id quote.id json.symbol quote.symbol json.price quote.price json.datetime quote.datetime
@quotes
,它可以是空数组
然后,我呈现以下视图
json.set! :quotes do
@quotes.each do |quote|
json.set! quote.id do
json.id quote.id
json.symbol quote.symbol
json.price quote.price
json.datetime quote.datetime
end
end
end
这通常会导致
"quotes": {
"123": {
"id": 123,
"symbol": "AAPL",
"price": 100,
"datetime": "2019-12-31T16:00:00.000Z"
},
但是,如果@quotes是空数组,则响应为
{}
当我想
{
"quotes": {}
}
有没有一种方法可以在不明确检查对象是否为空的情况下实现我的目标
我不想做
if @quotes.empty?
json.quotes({})
else
--我正在使用JBuilder2.7,我建议您使用gem。从jbuilder迁移到jb很简单(我是在生产项目中这样做的)。Jb比jbuilder快几倍,而且没有难看的jbuilder语法,它只是简单的ruby。
你的问题可以在jb中解决
json = { quotes: {} }
@quotes.each do |quote|
json[:quotes][quote.id] = {
...
}
end
json