Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 对活动记录的限额查询应用排序_Ruby On Rails_Ruby_Postgresql - Fatal编程技术网

Ruby on rails 对活动记录的限额查询应用排序

Ruby on rails 对活动记录的限额查询应用排序,ruby-on-rails,ruby,postgresql,Ruby On Rails,Ruby,Postgresql,我需要先找到10张唱片,然后再申请订购 Model.all.limit(10).order('cast(code as integer)') 上面代码的结果是-首先对模型应用订单,然后限制查询。所以,对于给定的模型,我在清单中得到了相同的代码。但是我想先应用限制查询,然后对获取的结果进行排序。当您在model上调用.all时,它在DB上执行查询并返回所有记录,要应用限制您必须在之前编写它。all-model.limit(10)。all,但之后您不能使用SQL函数来操作数据。因此,要获取前10条

我需要先找到10张唱片,然后再申请订购

Model.all.limit(10).order('cast(code as integer)')

上面代码的结果是-首先对模型应用订单,然后限制查询。所以,对于给定的模型,我在清单中得到了相同的代码。但是我想先应用限制查询,然后对获取的结果进行排序。

当您在model上调用
.all
时,它在DB上执行查询并返回所有记录,要应用
限制
您必须在
之前编写它。all
-
model.limit(10)。all
,但之后您不能使用SQL函数来操作数据。因此,要获取前10条记录并对其应用顺序,请尝试以下操作:

records=Model.limit(10).all.sort_by{o|o.code.to_i}


records=Model.first(10).按{o | o.code.to}排序
当您调用
.all
时,它在模型上执行对DB的查询并返回所有记录,要应用
限制
您必须在
之前编写它。all
-
Model.limit(10).所有
,但之后您不能使用SQL函数操作数据。因此,要获取前10条记录并对其应用顺序,请尝试以下操作:

records=Model.limit(10).all.sort_by{o|o.code.to_i}

records=Model.first(10).按{o | o.code.to_i}排序

尝试以下方法:

Model.limit(10).sort{|p, q| q.cost <=> p.cost}
Model.limit(10).sort{| p,q | q.cost p.cost}
试试这个:

Model.limit(10).sort{|p, q| q.cost <=> p.cost}
Model.limit(10).sort{| p,q | q.cost p.cost}

您只需删除
。All
方法:

Model.limit(10).order('cast(code as integer)')

您只需删除
。All
方法:

Model.limit(10).order('cast(code as integer)')

如果您想获得10条随机记录,然后在不从数据库中获取所有记录的情况下对它们进行排序,那么您可以使用

Model.limit(10).order("RANDOM()")
这使用PostgreSQL rand()函数将记录随机化


现在,您有了一个包含10条随机记录的数组,可以使用。按BitOfUniverse所述进行排序。

如果您想获得10条随机记录,然后在不从数据库中获取所有记录的情况下对其进行排序,则可以使用

Model.limit(10).order("RANDOM()")
这使用PostgreSQL rand()函数将记录随机化


现在,您有了一个由10条随机记录组成的数组,可以使用。按BitOfUniverse所述进行排序。

为什么要先添加限制,然后再进行排序?因为你想要一个随机样本?我想你可以像这样尝试
@model=model.all.limit(10)
@model.order('cast(code as integer)')
一些东西。find(:all,:limit=>10)为什么你要先添加限制,然后再进行排序?因为你想要一个随机样本?我想你可以像这样尝试
@model=model.all.limit(10)
@model.order('cast(代码为整数)')
Something.find(:all,:limit=>10)