大家好,我有2个数组,它们具有不同的活动记录值,但来自同一个表但有不同的值,我想将两者合并,然后按created_at
对它们进行排序,但没有得到任何线索,我是卡住。
请帮忙。
这是我的代码:
@find_user = EmployeeLeave.where(global_user_id: @allarray[i]).find(:all)
@all << @find_user
@find_referal_user = EmployeeLeave.where(referral_id: @allarray[i]).find(:all)
@all_entry << @find_referal_user
@total = @all + @all_entry
任何事情都不起作用请帮助我对@total
进行排序。
答案 0 :(得分:28)
您可以使用sort_by对数组进行排序。
在您的情况下,您可以执行以下操作:
@total.sort_by(&:created_at)
<强>更新强>
答案 1 :(得分:6)
您始终可以使用订购方式:
@total.order! 'created_at DESC'
答案 2 :(得分:0)
你可以这样做:
@total = EmployeeLeave.find(
:all,
:conditions => ["global_user_id = ? or referral_id = ?", @allarray[i], @allarray[i]],
:order => "created_at ASC"
)
因此,它会找到EmployeeLeave
或global_user_id
eq referral_id
的所有@allarray[i]
,并按created_at
对结果进行排序。
答案 3 :(得分:0)
如果您需要降序排列,请使用reverse
@total.sort_by(&:created_at).reverse