gpt4 book ai didi

ruby-on-rails - jbuilder 空数组删除键

转载 作者:行者123 更新时间:2023-12-05 07:12:52 24 4
gpt4 key购买 nike

我的 Controller 返回@quotes,它可以是一个空数组。

然后我呈现以下 View 。

  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

-- 我正在使用 Jbuilder 2.7

最佳答案

我建议你使用 jb gem 。从 jbuilder 转移到 jb 很简单(我是在生产项目上做的)。 Jb 比 jbuilder 快几倍并且没有丑陋的 jbuilder 语法,它只是普通的 ruby​​。你的问题在jb可以解决

json = { quotes: {} }
@quotes.each do |quote|
json[:quotes][quote.id] = {
...
}
end

json

关于ruby-on-rails - jbuilder 空数组删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60301277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com