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 |
|
|
|
|
|