我正在使用ActiveModelSerializers gem。在我的模型中,用户可以拥有许多车辆
class User < ActiveRecord::Base
has_many :vehicles
end
class Vehicle < ActiveRecord::Base
belongs_to :user
end
我的序列化器:
class UserSerializer < ActiveModel::Serializer
attributes :name, :vehicles
end
class VehicleSerializer < ActiveModel::Serializer
attributes :color, :make, :model
end
车辆拥有的属性不仅仅是颜色,品牌和型号。
如果我打印单个车辆@vehicle
,则仅显示序列化程序中指定的字段。但是,如果我打印@user
(其中包括:车辆序列化程序中的车辆),则会忽略序列化程序并打印车辆的所有字段。
我猜它必须考虑到user.vehicles是一个数组,而不仅仅是一个项目,但有没有办法打印用户车辆的整个数组,如序列化程序中描述的每个项目?< / p>
问候。
答案 0 :(得分:4)
AMS通过ActiveModel::Serializer::Association
结构支持关联。这意味着您可以在UserSerializer
以下内容中获得:
class UserSerializer < ActiveModel::Serializer
attributes :name
has_many :vehicles
end