【发布时间】:2011-09-27 07:21:31
【问题描述】:
我正在混合 2 个数组,并希望通过它们的 created_at 属性对它们进行排序:
@current_user_statuses = current_user.statuses
@friends_statuses = current_user.friends.collect { |f| f.statuses }
@statuses = @current_user_statuses + @friends_statuses
@statuses.flatten!.sort!{ |a,b| b.created_at <=> a.created_at }
@current_user_statuses 和 @friends_statuses 均正确排序,但它们组合起来排序不正确,@friends_statuses 始终按其created_at 属性排序显示在顶部,@current_user_statuses 按其@ 排序在底部987654327@属性。
这是视图:
<% @statuses.each do |d| %>
<%= d.content %>
<% end %>
【问题讨论】:
-
对不起,我真的很难理解问题所在。您介意在第一个代码示例之后改写文本吗?
-
“好友状态始终显示在顶部,按属性创建的位置排序,底部的 current_user_statuses 按属性创建的位置排序”--- 并且 created_at 中的时间表明记录应该混在一起?
-
@gal,请显示所需的结果。谢谢。
-
发布示例输出,以便我们查看日期。您是否检查过以确保它们不是偶然以这种方式订购的?
-
除非您展示了正在测试的数据的良好样本,否则我们无法为您提供进一步的帮助。告诉所有回答“排序不是我的问题......我的朋友状态总是显示在顶部”的人并没有帮助。花时间提供完整的数据样本。
标签: ruby-on-rails ruby ruby-on-rails-3