我有两个模型 ExpenseLog 和 IncomeLog ,每个模型都有一个序列化程序(使用active_model_serializers gem)。
我有一个控制器,其方法应该返回过去30天的所有日志(expenseLogs和incomesLogs)。 我必须合并两个集合,并为每个项目使用序列化程序(如果它是ExpenseLog,使用ExpenseLogSerializer,如果它是IncomeLog,则使用IncomeLogSerializer)。
首先,我有两个问题: 1)有没有办法先合并两个集合然后序列化它们? 2)如果没有,我该如何在不使用"渲染json:collection"的情况下序列化集合。办法?因为我需要将json结果存储在一个变量中,以便与另一个集合合并。
答案 0 :(得分:0)
1)答案是肯定的,只需将两个集合合并到一个数组中,一切都应该按预期工作。
2)你可以做
hash = ActiveModel::SerializableResource.new(collection).serializable_hash
json = hash.to_json