分页范围的随机顺序
|
我正在尝试弄清楚如何创建一个范围,该范围将返回随机ActiveRecords,同时还支持will_paginate。
现在,每个页面视图都会获得完全不同的ActiveRecord随机集。因此,每个分页链接实际上只是另一组随机记录。
如何设置范围,使其成为通过分页保留的随机顺序?
我猜我需要某种基于时间的种子吗?
没有找到相关结果
已邀请:
1 个回复
扇献隙
[...]如果指定了常量整数参数N,它将用作种子值,这将产生可重复的列值序列。 因此,您只需要选择一个种子(甚至可以通过在Ruby代码中使用
或类似的东西)并在会话中跟踪该种子。然后,对于下一页,将种子从会话中拉出,并将其提供给MySQL的
函数。 请记住,
(带或不带种子)并不是地球上最便宜的操作。如果您的可搜索表很小,则可以生成一个由一堆列组成的表,用随机数填充(可能由ѭ3generated生成),然后将该表加入其中以按顺序提供您的随机序列。通过从随机数表中选择不同的列,可以为不同的查看者提供不同的序列:对于一个用户,您可以按随机数表/矩阵的第11列进行排序,而另一位用户将使用第23列。请记住,这些表(带有主键)实际上只是有限域上的函数(反之亦然),因此您选择的通常只是实现细节。使用表实现
通常很麻烦,但我想还是要提到该选项。