我有一系列产品,每个都有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
感谢您的帮助!
答案 0 :(得分:1)
只需从每个标记中提取标记名称即可!
json.array! @products do |product|
json.title product.title
json.tags product.tags.map(&:name)
end
如果tag是关系,则可以使用pluck
代替
json.array! @products do |product|
json.title product.title
json.tags product.tags.pluck(:name)
end