Rails和ActiveModelSerializer:合并两个集合

时间:2015-10-13 14:59:57

标签: ruby-on-rails json active-model-serializers

我有两个模型 ExpenseLog IncomeLog ,每个模型都有一个序列化程序(使用active_model_serializers gem)。

我有一个控制器,其方法应该返回过去30天的所有日志(expenseLogs和incomesLogs)。 我必须合并两个集合,并为每个项目使用序列化程序(如果它是ExpenseLog,使用ExpenseLogSerializer,如果它是IncomeLog,则使用IncomeLogSerializer)。

首先,我有两个问题: 1)有没有办法先合并两个集合然后序列化它们? 2)如果没有,我该如何在不使用"渲染json:collection"的情况下序列化集合。办法?因为我需要将json结果存储在一个变量中,以便与另一个集合合并。

1 个答案:

答案 0 :(得分:0)

1)答案是肯定的,只需将两个集合合并到一个数组中,一切都应该按预期工作。

2)你可以做

hash = ActiveModel::SerializableResource.new(collection).serializable_hash
json = hash.to_json