2017-07-18 20 views
1

我希望做的是創建一個用戶事件的時間線,這個用戶事件從多個與用戶相關的不同表中創建。在一個.each循環中查詢多個表

例如

@user.notifications 
@user.followings 
@user.enrollments 

我不知道是否有通過created_at整理這些信息的方式來循環。

<% (@user.notifications) + (@user.followings) + (@user.enrollments).each do |n, f, e| %> 

任何指導做好會超感激!

回答

1

您正確地將數組添加在一起(您實際上並不需要每個元素周圍的parans,但是您需要在parans中包裝整個添加語句),所以現在只需要對它們進行排序。

試試這個:

<% (@user.notifications + @user.followings + @user.enrollments).sort_by(&:created_at).each do |event| %> 
+0

除了你應該只產生一個元素來塊,而不是三個 - 也許只是'|事件|' –

+0

@MatthewBorg - 謝謝你注意到!我編輯了我的答案。 – NateW