gpt4 book ai didi

ruby-on-rails - 按字母顺序排列,但顶部有一个值

转载 作者:行者123 更新时间:2023-12-03 16:01:49 24 4
gpt4 key购买 nike

这:

    - book.prices.order(:currency_code).each do |price|

返回按货币代码字母顺序排列的所有书籍价格:
AUD 19.99 
GBP 9.99
NZD 26.00
USD 14.95

现在,我怎样才能巧妙地让 GBP 始终出现在列表的顶部,而其他的按字母顺序排序,如下所示:
GBP 9.99 
AUD 19.99
NZD 26.00
USD 14.95

This answer显示了 SQL 解决方案,但我不确定 Rails 方式。

最佳答案

由于排序通常在 DB 级别完成,因此只需使用 rails 中的 SQL 解决方案:

- book.prices.order("`currency_code` = 'GBP' desc, currency_code").each do |price|

您可以在 Rails (ActiveRecord) 查询方法中使用 sql 片段。
根据您的数据库,您可能必须选择正确的 SQL 解决方案,所以可能
- book.prices.order("CASE WHEN currency_code = 'GBP' THEN 1 ELSE 2 END, currency_code").each do |price|

适用于您的情况。
您可以在 rails console 中查看生成的 sql :
book.prices.order("CASE WHEN currency_code = 'GBP' THEN 1 ELSE 2 END,  currency_code").to_sql

并检查它是否适用于您的数据库。

另一种方法是添加一个额外的列进行排序,这样你甚至可以将英联邦货币放在其他人的前面等。

关于ruby-on-rails - 按字母顺序排列,但顶部有一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17637983/

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