Rails:Sort_by:created_by - 包含多个类的数组

时间:2014-03-05 05:58:38

标签: sql ruby-on-rails ruby arrays

我的Article模型中的方法中有两个完全不同的类,“Comment”和“User”。我正在尝试按降序created_at顺序排序所有这些。到目前为止,我能够实现的最好的方法是按降序获取数组的一个类中的对象,然后按降序跟随其他类对象。我希望created_at按顺序整合所有这些对象,而不是单独订购。

我一直在浏览,而且我遇到了一些“假设的”解决方案,其中没有一个是优雅的。这是我尝试过的一个例子 - (Order array. undefined method `order' for Array. Convert array into hash?) -

def follow_feed
    objects = Article.from_followed_users(self) + Comment.from_followed_users(self)
    objects = objects.sort_by(&:created_at)
    objects = objects.reverse if sort_direction == 'DESC'
end

然后定义 - (来自链接) -

def sort_direction
  %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
end

from_followed_users(self)是各自类别中定义的范围。必须有一个我尚未找到的简单,有效的解决方案。有人知道吗?

0 个答案:

没有答案