[英]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.