gpt4 book ai didi

ruby-on-rails - ActiveRecord 中的手动排序

转载 作者:行者123 更新时间:2023-12-04 03:50:57 24 4
gpt4 key购买 nike

我数据库中的每个公司都有很多项目,每个公司在注册时都会得到一个'General tasks'项目。公司无法删除此特定项目,它被视为尚未分配给公司其他项目之一的任务的特殊存储库。

在显示公司的项目时,我希望它们按字母顺序显示,但唯一的异常(exception)是“常规任务”出现在顶部。这需要对项目进行某种特殊处理以进行分类。我该如何服用:

@projects = @company.projects

然后对其进行排序,这样我们就可以得到这样的列表:

'General tasks'
'ABC Project'
'BFA Project'
'ZNS Project'

最佳答案

您可以在 SQL 中执行此操作。这是一个适用于 PostgreSQL 的示例。无法弄清楚如何制作与数据库无关的版本,但您应该能够根据您的 RDBMS 对其进行定制。

@projects = @company.projects.order("name != 'General tasks', name")

!= 返回一个 bool 值,在 PostgreSQL 中 false 出现在 true 之前所以我们不需要 NOT EQUAL 来确保记录首先显示名称“常规任务”。其余项目将按名称排序。

另一种方法是在项目表中添加一列,将“常规任务”项目标记为特殊项目,例如:

add_column :projects, :permanent, :boolean, :default => false

然后,您可以在不使用原始 SQL 的情况下进行排序:

@projects = @company.projects.order(:permanent, :name)

关于ruby-on-rails - ActiveRecord 中的手动排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10824547/

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