回答

收藏

Rails:ActiveRecord db排序操作不区分大小写

技术问答 技术问答 285 人阅读 | 0 人回复 | 2023-09-14

我正在尝试学习Rails(通过遵循Coursera的SAAS课程)并使用ActiveRecord处理简单的Movie表。
7 M8 J  @5 s* {, N我想显示标题排序的所有电影。我希望对它进行不区分大小写的排序。
1 s2 i  H, P8 e# V' ]; c7 a  J我尝试过这种方式:
5 e6 P" c2 e) \3 y; i$ `Movie.all(:conditions => ["lower(title) = ?", title.downcase],rder => "title DESC")( j. ]9 O: }2 N  H3 m$ I! ^& P
=>undefined local variable or method `title' for #
& }# }* N# a6 J- {我认为它不能识别lower(title)。/ e( ^) v9 D/ V4 ~1 Z3 f2 t3 h
这是实现案例不间断排序的最佳方法吗?
8 M0 b" j; L" {& s# i/ S; _谢谢!0 y! y+ H  Y0 b# C+ r
               
: n7 L+ w  H% [( e& S5 @0 ~% n解决方案:% d" ], U$ s) W8 V
               
( z; J5 o9 ^# ]8 G2 e0 I! h  Q$ U4 u# D
' c- j7 Q4 n) z1 p7 [+ F; x
                使用where与不使用all- p: E0 q+ }2 K; Y- R7 X$ B: F! A
Movie.where("lower(title) = ?", title.downcase).order("title DESC")& e/ ]) x3 @  d4 K! b( g
不过,我不太了解这种排序。在这里,您将获得标题等于的所有短片title.downcase。一切都相等,如何排序title desc?# _4 A3 Z! m" T2 Y" z8 C. F
要按小写字母标题对所有电影进行反字母排序:- f& J6 J4 c' N
Movie.order("lower(title) DESC").all
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则