在一个.each循环中查询多个表

时间:2017-07-18 15:27:17

标签: ruby-on-rails postgresql web-applications

我希望做的是创建从与用户相关的多个不同表中提取的用户事件的时间线。

例如

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

我不知道是否有办法循环显示按created_at排序的信息。

喜欢

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

任何指导都会非常感激!

1 个答案:

答案 0 :(得分:1)

您正确地将数组添加到一起(您实际上并不需要围绕每个元素使用parans,但是您需要将整个add语句包装在parans中)所以现在您只需要对它们进行排序。

试试这个:

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