我有一个包含多个属性的模型,其中包括title
和artist
。
所有Active Record查找器都应忽略title
和artist
的情况。
基本上,如果:{条件中存在title
或artist
(或动态地find_all_by_artist
),那么WHERE artist = :artist
应该变为WHERE UPPER(artist) = UPPER(:artist)
或其他内容沿着这些路线。
有没有办法用Rails做到这一点?
答案 0 :(得分:1)
如果您使用的是MySQL数据库,默认情况下搜索是不敏感的。请阅读MySQL documentation了解详情。
所以finder
调用如:
Album.find_all_by_artist("Nine Inch Nails").each do |album|
p album.title
end
与下面的电话相同:
Album.find_all_by_artist("NINE INCH NAILS").each do |album|
p album.title
end
两个查询都会打印相同的结果:
# -> Pretty Hate Machine
# -> Broken
# -> ....
# -> The Slip