1

我正在尝试将模型的关联序列化为关联模型的 ID(int)数组。我目前在 serializable_hash 中使用 :include 选项,如下所示:

:include => {:associated => {:only => [:id]}

至尊输出json像:

{"id":13, ...,"associated":[{"id":15,"associated":[]},{"id":14,"associated":[]}]}

不知道为什么关联的对象有一个“关联”键;但这不是很重要;我想要的是获得如下输出:

{"id":13, "associated":[15,14]}

我应该怎么做才能得到这个?

4

2 回答 2

1

如果您只需要associated模型 ID,您可以尝试在父模型中创建一个方法,例如:

class ParentModel < ActiveRecord::Base
  # ...

  def associated_ids
    associated.pluck(:id)
  end
end

然后在serializable_hashorto_json方法中,我会这样做:

parent_model_instance.includes(:associated).serializable_hash(methods: [:associated_ids])

哪个应该产生这个:

{ "id": 13, "associated_ids": [15,14] }
于 2013-03-17T09:52:47.333 回答
1

也许你可以在你的序列化器中这样做:

 class SomeSerializer < ActiveModel::Serializer
   embed :ids
   has_many :associateds
 end
于 2013-09-24T09:06:31.593 回答