我将数据从4个不同来源提取到数据库中,当它们保存时,它们将通过导轨分配到created_at
。Rails - Randomise记录,但按日期保留订单
当我显示数据时,我想先显示最新的记录,所以我使用下面的代码来获取记录created_at desc
和借助宝石kaminari
记录通过分页显示。
@stats = Stats.page(params[:page]).order('created_at desc').per(10)
我用这种方法所面临的问题是,不是所有的来源获取,例如等于曝光以来source A
数据得到了拉出第一,然后source B
数据得到了在同一天第二拉升,在网站上源A的所有记录将首先显示,然后将显示源B的所有记录。
所以我的问题是,我怎样才能按日期显示记录,并随机化该日期的记录,所以所有的来源可以得到相同的曝光。有没有一个可以帮助解决这个问题的构建栏功能?如果不是,那么实现我所期望的结果的最佳方式是什么?事情是这样的
Date (August 29th)
Record 1 - (Belonging to Source A)
Record 2 - (Belonging to Source E)
Record 3 - (Belonging to Source D)
Record 4 - (Belonging to Source B)
Record 5 - (Belonging to Source E)
Record 6 - (Belonging to Source D)
Record 7 - (Belonging to Source A)
Date (August 28th)
Record 1 - (Belonging to Source E)
Record 2 - (Belonging to Source D)
Record 3 - (Belonging to Source A)
Record 4 - (Belonging to Source B)
Record 5 - (Belonging to Source A)
Record 6 - (Belonging to Source D)
Record 7 - (Belonging to Source A)
...
...
...
这些记录显示最近6个月
由于记录数量相对较少,因此可以使用['Array#shuffle'](https://ruby-doc.org/core/Array.html#method-i-shuffle)。 – mudasobwa
不会按日期打破订单吗?每个源有超过20条记录,涉及4个源,数据每天提取,最近6个月显示,因此数据非常庞大。 – Saadia
无法对来自不同来源的数据进行奇迹分类。如果你想保存一个日期/时间顺序,把所有东西加入到一个数组中,并使用['Array#sort'](https://ruby-doc.org/core/Array.html#method-i-sort)。 – mudasobwa