簡體   English   中英

在Rails 4中簡化.to_json數組結果

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM