gpt4 book ai didi

ruby-on-rails - 如何按特定优先级对事件记录查询进行排序

转载 作者:行者123 更新时间:2023-12-04 09:31:12 26 4
gpt4 key购买 nike

我正在使用 rails 3 和 postrges。

我想按特定优先级排序。

就像是:

Assignment.order(priority: ['best', 'good', 'bad'])

这将首先返回所有 activerecords 'best',然后是'good',然后是'bad'

我似乎找不到这样的东西。我不需要数组,它必须是事件记录。

最佳答案

在较新版本的 Rails 中,您将获得 ActiveRecord::UnknownAttributeReference (Query method called with non-attribute argument(s)将原始 SQL 传递给 .order() 时出错.
你需要用 Arel.sql() 包装你的 SQL 查询。 .也可以使用 ruby​​ 的 Here Doucment语法,编写多行 SQL 语句,和 squish使其在控制台中更具可读性。
所以整个事情变成了:

Assignment.order(
Arel.sql(<<-SQL.squish
CASE
WHEN priority = 'best' THEN '1'
WHEN priority = 'good' THEN '2'
WHEN priority = 'bad' THEN '3'
END
SQL
)
)

关于ruby-on-rails - 如何按特定优先级对事件记录查询进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23620615/

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