![](/img/trans.png)
[英]How do I query ActiveRecord to return only the first instance of each object where enum = X, Y, Z?
[英]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.