0

我在我的一个模型中定义了以下默认范围

default_scope order("IF(format = #{FORMATS[:wide]}, 1, 0) DESC, created_at DESC, name ASC")

它在我运行 MySQL 的开发机器上运行良好,但在部署到我们使用 postgres 的生产环境时出现故障。有没有办法使用 Arel 而不是直接 SQL 来编写它?FORMATS[:wide]返回一个整数,但它可能没有任何特定的顺序。我只想format先返回具有该特定内容的记录。

4

1 回答 1

0

我根本不会把它放在 SQL 中。我可能会为每种格式类型创建一个范围,然后使用 Ruby 来确定使用哪个格式。或者创建一个方法来确定排序顺序并将其传递到您使用它的任何地方。

于 2011-07-22T11:23:26.617 回答