当前位置: 首页 > 面试题库 >

Rails / ActiveRecord按特定值排序

呼延运恒
2023-03-14
问题内容

在Rails
3.2中,是否有任何便捷的方法通过将具有特定字段的特定值的记录移动到关系的前面来订购ActiveRecord关系?例如,如果MyModel有一个attribute
country,我想对任何查询返回的关系进行排序,其中记录必须country='Spain'位于该关系的前面。


问题答案:

这样的事情。显然,“名称,ID”将取决于您的型号和要求。

MyModel.order("country = 'Spain' DESC, name, id")


 类似资料:
  • 问题内容: 我有一个模型可以使用“使行为成为现实”宝石(Github页面)进行投票。投票系统工作正常,但我尝试显示按每个页面有多少排序的页面。 目前,我的控制器根据标签提取资源,但未排序: 如果我使用单个资源并调用“ @ resource.votes.size”,它将返回其拥有的票数。但是,票数是另一张桌子,因此我认为需要进行某种形式的合并,但我不确定如何进行。我需要的是一个可以这样显示的漂亮的有

  • 问题内容: 是否可以使用预定义的一组列值(ID)按“ order by”在mysql中排序,例如:order by(ID = 1,5,4,3),因此我会在其中得到记录1、5、4、3订购吗? 更新: 关于滥用mysql ;-)我必须解释为什么我需要这个… 我希望记录每5分钟随机更改一次。我有一个cron任务来执行更新表,以在其中放置不同的随机排序顺序。只有一个问题!分页。我将有一位访问者来到我的页面

  • 问题内容: 我有一个名为的模型。我也有一个名为的模型。A 和一首歌(可以收听很多次)。 在我的模型中,我想定义一个方法,该方法应返回收听次数最多的前5首歌曲。如何使用关系实现这一目标? 我正在使用Rails 3.1。 谢谢! 问题答案: 使用命名范围:

  • 问题内容: 我有一个包含3列的表格: 我想使用以下顺序来排序结果集,但首先要优先考虑那些具有较低优先级的行。结果应如下所示 问题答案: 还有MySQL 函数。 如果要对所有可能的值进行完整排序: 如果您只关心“核心”在前,而其他值则无关紧要: 如果要先按“核心”排序,然后按正常排序顺序按其他字段排序: 不过,这里有一些警告: 首先,我很确定这是仅mysql的功能-问题被标记为mysql,但您永远不

  • 问题内容: 给定模型所在的相同场景 我想按收听次数对歌曲进行分组。我的目标是查看歌曲与听音的分布情况。就像是… 这样就可以返回听过4次的歌曲数量。 上面链接问题的公认答案非常接近我,但是我无法按“ songs.listens_count”分组 问题答案: 您正在寻找的内容与标准ActiveRecord查询的映射并不理想。 您可以调用直接SQL来最有效地获取所需内容: 另外,您可以使用ActiveR

  • 问题内容: 当我发现时,我有点希望它可以在查询部分的语句中泛化为“ X LAST” 。 事实并非如此。 我正在尝试按两列对表进行排序(简单),但是以特定的顺序(简单)获得输出,其中 一个特定值的一列最后出现 (完成它……很丑)。 假设这些列是并且(不要怪我命名列-我没有给它们命名)。仅采用2个值(“ U”和“ S”),而可以采用约100个值中的任何一个。 的值的一个子集是(在伪正则表达式中),而这