在序列化器中返回数组而不是对象

时间:2016-10-14 15:17:44

标签: ruby-on-rails serializer

有没有办法让has_many :roles数组而不是对象返回?

class UserSerializer < ActiveModel::Serializer
  attributes :id, :name, :nickname, :image, :roles

  has_many :roles
end

感谢。

2 个答案:

答案 0 :(得分:1)

您可以在序列化程序中构建自己的自定义方法,并将其用作属性

class UserSerializer < ActiveModel::Serializer
  attributes :role_names

  def role_names
    object.roles.map(&:name)
  end
end

答案 1 :(得分:0)

您通常会使用includes。我对使用序列化器并不熟悉。