模型属性的JBuilder动态键 [英] JBuilder dynamic keys for model attributes
问题描述
我正在尝试构建一个JSON文件以通过变体代码访问产品的变体.理想情况下,我可以称其为variances.abcdefgh,其本质是要求定义如下结构:
I'm trying to build a JSON file to access a product's variation via a variation code. Ideally, I could call variations.abcdefgh essentially asking to define a structure like this:
{
"variations":{
"abcdefgh":{
"available":true,
"price":"12.00"
},
"ijklmnop":{
"available":false,
"price":"25.00"
}
}
}
在products/show.json.jbuilder中做某事,例如
Doing something in products/show.json.jbuilder like
json.variations @product.variations
给我这样的格式:
{
"variations":[
{
"available":true,
"price":"12.00",
"product_code":"abcdefgh"
},
{
"available":true,
"price":"25.00",
"product_code":"ijklmnop"
}
]
}
也许我的JavaScript会更好,但是我希望基于product_code可以更方便地访问一些内容.我最接近的是
maybe my JavaScript could be better, but I want something a little more accessible based on the product_code. The closest I've gotten has been
@product.variations.each do |variation|
json.set! variation.product_code, variation
end
但是我还没有找到一种解决方案,可以将这些格式正确的对象作为子级放入variants属性中.有人碰过类似的东西吗?
but I've yet to find a solution that will put these correctly formatted objects as children into a variations attribute. Anyone run into something similar before?
推荐答案
json.set! :variations do
@variations.each do |variation|
json.set! variation.product_code do
json.(variation, :available, :price)
end
end
end
^^这应该做到
这篇关于模型属性的JBuilder动态键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!