gpt4 book ai didi

ruby-on-rails - 如何在 ActiveRecord 中返回匹配的结果然后余数?

转载 作者:行者123 更新时间:2023-11-29 11:57:03 26 4
gpt4 key购买 nike

假设我们有这样的数据

< id: 1, name: "Bill", type: "Lemur" >
< id: 2, name: "Bob", type: "Cow" >
< id: 3, name: "Nancy", type: "Lemur" >
< id: 4, name: "Jack", type: "Seagull" >
< id: 5, name: "Jill", type: "Seagull" >
< id: 6, name: "Jake", type: "Cow" >
< id: 7, name: "Jess", type: "Lemur" >
< id: 8, name: "Nick", type: "Lemur" >
< id: 9, name: "Jacky", type: "Cow" >
< id: 10, name: "Jerry", type: "Cow" >
< id: 11, name: "Samuel", type: "Seagull" >
< id: 12, name: "Tessa", type: "Lemur" >

我想首先返回类型为 Lemur 的所有结果,然后以任意顺序返回其余结果。我以为我可以使用 ActiveRecord 的组方法,但我不认为我理解正确并且它正在做其他事情。在看到另一个 Stack Overflow 答案后,我尝试执行 Animal.order('Field(type, "Lemur")') 但这也不起作用。我需要返回一个关系,因为我要把它传递给 Kaminari 进行分页。有人知道怎么做吗?

为了让事情变得更复杂,我们实际上想在 hstore 列上执行此操作,但我想先找出一般答案。

这是在带有 Postgres 9.3 的 Rails 3.2 上。

最佳答案

因为 Postgres 没有像 MySQL 那样的“ORDER BY FIELD(some_column, 'Zebra', 'Hipo')”——你可以尝试使用“Order by bang!”,像这样:

Animal.order("type!='Lemur', type!='Cow', type!='Seagull'")

正如这篇文章所建议的那样:

Simulating MySQL's ORDER BY FIELD() in Postgresql

关于ruby-on-rails - 如何在 ActiveRecord 中返回匹配的结果然后余数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26369827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com