Как избежать вложения в Serializer на ассоциации has_one?

У меня есть ProfileSerializer:

class ProfileSerializer < ActiveModel::Serializer
  attributes :id, :role, :name
  has_one :company
end

и я получаю

{"user": {"id":7,"role":"guest","name":"misa","company":{"id":2,"user_id":7, ...}}

У меня есть шанс избежать вложенности "компании" и получить JSON вот так:

{"user": {"user_info": {"id":7,"role":"guest","name":"misa"}, "company_info": {"id":2,"user_id":7, ...}}}

1 ответ

Решение

Вы можете попробовать это:

class ProfileSerializer < ActiveModel::Serializer
  attributes :id, :role, :name, :company_info

  def company_info
    object.company
  end
end
Другие вопросы по тегам