繁体   English   中英

Z = X + Y时如何防止堆叠顺序? X总是在最前面

[英]how to prevent stacked ordering when I do Z=X+Y? X is always on top

这就是我的意思

这是我的控制器

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”将两者合并为一个顺序。

如何防止这种堆叠式订购并将其作为一体订购? 谢谢

sort_by并未按照您认为的去做。 它返回一个新的排序数组。 如果要就地修改数组,则必须使用sort_by!

@items.sort_by!(&:created_at)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM