使用Jbuilder将所有记录的一个属性合并到数组中
Merging one attribute for all records into array using Jbuilder
我有一个产品集合,每个产品都有 has_many 个标签。我想组合所有标签的名称,以便我有一个包含所有标签名称的数组。
期望的输出:
{
"title": "Product1",
"tags": ["name1", "name2", "name3"]
}
我当前的 jbuilder 给我:
{Products: [{
"title": "Product1",
"tags":[
{"tag1":
{"name": "name1"}
},
{"tag2":
{"name": "name2"}
},
{"tag3":
{"name": "name3"}
}
]
}]}
我现在的jbuilder。
json.array! @products do |product|
json.title product.title
json.tags product.tags do |tag|
json.name tag.name
end
end
感谢您的帮助!
只需从每个标签中提取标签名称即可!
json.array! @products do |product|
json.title product.title
json.tags product.tags.map(&:name)
end
如果标签是一个关系,您可以使用 pluck
来提高效率
json.array! @products do |product|
json.title product.title
json.tags product.tags.pluck(:name)
end
我有一个产品集合,每个产品都有 has_many 个标签。我想组合所有标签的名称,以便我有一个包含所有标签名称的数组。
期望的输出:
{
"title": "Product1",
"tags": ["name1", "name2", "name3"]
}
我当前的 jbuilder 给我:
{Products: [{
"title": "Product1",
"tags":[
{"tag1":
{"name": "name1"}
},
{"tag2":
{"name": "name2"}
},
{"tag3":
{"name": "name3"}
}
]
}]}
我现在的jbuilder。
json.array! @products do |product|
json.title product.title
json.tags product.tags do |tag|
json.name tag.name
end
end
感谢您的帮助!
只需从每个标签中提取标签名称即可!
json.array! @products do |product|
json.title product.title
json.tags product.tags.map(&:name)
end
如果标签是一个关系,您可以使用 pluck
来提高效率
json.array! @products do |product|
json.title product.title
json.tags product.tags.pluck(:name)
end