我有以下表格:
Table1
:name
:resource
Table2
:FK Table1
:FK Other Table
:quantity
以下序列化程序
class Table1 < ActiveModel::Serializer
attributes :id,
:name,
:resource
end
我需要的是序列化程序返回其所有属性以及来自quantity
的{{1}},它与之有关系。
任何帮助将不胜感激。
答案 0 :(得分:1)
ActiveModel::Serializer
实际上支持这一点,这是我的例子
class Table1Serializer < ActiveModel::Serializer
attributes :id, :name, :resource
has_one :table_2, serializer: Table2Serializer
end
class Table2Serializer < ActiveModel::Serializer
attributes :id, :quantity
end
因此,您只需指定与相应序列化程序的关系,即使用Table1Serializer
代替Table1
,以避免误解Table1
(模型)
另一个选择是,如果你不想写Table2Serializer
,你可以使用自定义属性,它就像:
class Table1Serializer < ActiveModel::Serializer
attributes :id, :name, :resource
attributes :table_2
def table_2
object.table_2
end
end
你可以通过两种方式申请,但对于你提到的关系,我更喜欢第一种选择,因为我可能会在以后使用Table2Serializer
!