0

这就是我的意思

这是我的控制器

class StaticPagesController < ApplicationController

  def home
    if signed_in?
      @post_items = current_user.posts
      @activities = PublicActivity::Activity.order("created_at desc")
      @items = @post_items + @activities
      @items.sort_by{|item| item.class == PublicActivity::Activity ? item.created_at : item.created_at}
      @items = @items.paginate(:page => 1, :per_page => 20)
    else
    redirect_to root_path  
    end
  end

正如您在上面看到的,这条线@items = @post_items + @activities导致堆叠排序。所有的 post_items 都排在最前面,活动排在它下面。

我正在尝试使用“created_at”将两者组合成一个排序。

如何防止这种堆叠排序并将其作为一个排序?谢谢

4

1 回答 1

0

sort_by没有做你认为它正在做的事情。它返回一个的排序数组。如果要就地修改数组,则必须使用sort_by!

@items.sort_by!(&:created_at)
于 2013-05-01T02:41:58.157 回答