[英]Simplify .to_json array result in Rails 4
我有以下代碼:
@post.to_json(include: {tags: { only: :name} } )
產生以下輸出:
{ ... "tags": [{"name": "Lorem"}, {"name": "ipsum"}, {"name": "cupcake"}] ... }
當我想要的是:
{ ... "tags": ["Lorem", "ipsum", "cupcake"] ... }
有任何想法嗎?
很簡單,編寫自己的序列化程序,而不是嘗試破解to_json
。
class PostWithTagsSerializer
attr_reader :object
def initialize(object)
@object = object
end
def as_json(*)
hash = object.as_json
hash[:tags] = object.tags.pluck(:name)
hash
end
def to_json(*)
as_json.to_json
edn
end
然后簡單地使用
PostWithTagsSerializer.new(@post).to_json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.