У меня есть пользователи, и у меня есть администраторы, но администратор просто ссылается на пользователя. Внутри администратора у меня есть admin_roles, и у каждого admin_role есть много админов. В моей AdminRoleSerializer, у меня есть HAS_MANY админы, который получает сериализован в 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
Возможно ли это сейчас? Это что-то имеет смысл?
Инициализировать() мне не пришло в голову. Я думаю, мне нравится вариант № 2, хотя. Я собираюсь подать вариант №1 под категорию «только потому, что вы можете что-то сделать, а это не значит, что вам нужно». – Dan