所以,我试图从 DataMapper 订购我的结果而不考虑大小写。现在,我做类似 Item.all(:order => :artist) 的事情。我尝试做 Item.all(:order => "LOWER(artist)") ,但我只是收到一个错误,即 LOWER(artist) 不是 Item 的属性。有没有用 DataMapper 做到这一点的好方法? 最佳答案 DataMapper 可能不支持排序子句中的原始 sql。 https://github.com/datamapper/dm-core/pull/11 有更多信息。如果您真的需要它,您可以将该补丁应用于您的 DataMapper 版本。即使 DataMapper 确实支持它,您也需要一个 lower(artist) 索引来使排序有效。 您可能想要做的是对艺术家列使用 postgresql citext 数据类型。它提供不区分大小写的搜索和排序。 http://www.postgresql.org/docs/9.1/static/citext.html 如果你有幸使用 postgresql 9.1,下面的应该会很好用。如果你使用 create extension citext;create table test ( name citext);insert into test values ('a'), ('b'), ('X'), ('m'), ('D');select * from test order by name; name------ a b D m X关于ruby - 如何使用 Postgres 在 DataMapper 中进行不区分大小写的排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9205270/
10-12 01:26