2015-10-13 139 views
0

我有兩個型號ExpenseLogIncomeLog一個串行每個(使用active_model_serializers寶石)。Rails和ActiveModelSerializer:合併兩個集合

我有一個控制器,應該返回最近30天的所有日誌(包括expensesLogs和incomesLogs)。 我必須合併兩個集合,併爲每個項目使用序列化程序(如果它是ExpenseLog,使用ExpenseLogSerializer,並且它是IncomeLog,則使用IncomeLogSerializer)。

首先,我有兩個問題: 1)有什麼辦法可以先合併兩個集合,然後序列化它們? 2)如果沒有,我怎樣才能在不使用「render json:collection」方式的情況下序列化集合?因爲我需要將json結果存儲在與另一個集合合併的變量中。

回答

0

對於1)答案是肯定的,只是將兩個集合合併到一個數組中,一切都應該按預期工作。

對於2),你可以做

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