У меня есть пользователи и администраторы, но администратор просто ссылается на пользователя. Внутри администратора у меня есть admin_roles, и у каждой admin_role есть много администраторов. В моем AdminRoleSerializer у меня есть has_many admins, которые сериализуются в AdminRoleUserSerializer следующим образом:
module Admin
class AdminRoleUserSerializer < ActiveModel::Serializer
attributes :user_id, :first_name, :last_name, :title, :organization_name
def user_id
object.user.id
end
def first_name
object.user.first_name
end
def last_name
object.user.last_name
end
def title
object.user.title
end
def organization_name
object.user.organization_name
end
end
end
Итак, я передаю набор администраторов в AdminRoleUserSerializer, а затем перебираю каждый объект администратора, чтобы получить актуальную информацию о пользователе, и это совсем не сухо. Имеет смысл передать администраторов в этот сериализатор, но нет смысла переопределять каждый атрибут пользователя таким образом. Вот мысль:
module Admin
class AdminRoleUserSerializer < ActiveModel::Serializer
object = object.user
attributes :id, :first_name, :last_name, :title, :organization_name
end
end
Возможно ли что-то подобное сейчас? Есть ли в этом смысл?