2014-01-23 38 views
0

我是Datamapper的新手。有沒有辦法在datamapper中編寫不區分大小寫的查詢,因爲我正在使用datamapper在表中搜索名稱的存在。通常我們寫查詢中的DataMapper這樣說,在Datamapper中不區分大小寫的查詢

Student.all(:name => "XYZ") where name can be of the form xyz, Xyz and XYZ. 

所以在上面的查詢我有什麼額外的運營商加入,使上面的查詢不區分大小寫。

+0

看看這個相似的答案:http://stackoverflow.com/questions/7659045/case-insensitive-like-ilike-in-datamapper-with-postgresql –

+0

不要忘記接受相應的答案 – Jeet

回答

-2

你可以試試這個

name = "XyZ" 
Student.where("lower(name) = ?", name.downcase) 

,或者你可以把驗證的模式也是這樣

validates_uniqueness_of :name, :case_sensitive => false 
+0

該答案適用於ActiveRecord,而不是DataMapper。 –

0

修改查詢:

name = "XyZ" 
Student.find(:all, :conditions => [ "lower(name) = ?", name.downcase ]) 
1

對於DataMapper的,你必須使用

Student.all(:conditions => [ "lower(name) = ?", name.downcase ])