如何使模型忽略的所有取景器?

时间:2010-03-13 19:58:49

标签: mysql ruby-on-rails

我有一个包含多个属性的模型,其中包括titleartist

所有Active Record查找器都应忽略titleartist的情况。

基本上,如果:{条件中存在titleartist(或动态地find_all_by_artist),那么WHERE artist = :artist应该变为WHERE UPPER(artist) = UPPER(:artist)或其他内容沿着这些路线。

有没有办法用Rails做到这一点?

1 个答案:

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