我是Datamapper的新手。有沒有辦法在datamapper中編寫不區分大小寫的查詢,因爲我正在使用datamapper在表中搜索名稱的存在。通常我們寫查詢中的DataMapper這樣說,在Datamapper中不區分大小寫的查詢
Student.all(:name => "XYZ") where name can be of the form xyz, Xyz and XYZ.
所以在上面的查詢我有什麼額外的運營商加入,使上面的查詢不區分大小寫。
我是Datamapper的新手。有沒有辦法在datamapper中編寫不區分大小寫的查詢,因爲我正在使用datamapper在表中搜索名稱的存在。通常我們寫查詢中的DataMapper這樣說,在Datamapper中不區分大小寫的查詢
Student.all(:name => "XYZ") where name can be of the form xyz, Xyz and XYZ.
所以在上面的查詢我有什麼額外的運營商加入,使上面的查詢不區分大小寫。
你可以試試這個
name = "XyZ"
Student.where("lower(name) = ?", name.downcase)
,或者你可以把驗證的模式也是這樣
validates_uniqueness_of :name, :case_sensitive => false
該答案適用於ActiveRecord,而不是DataMapper。 –
修改查詢:
name = "XyZ"
Student.find(:all, :conditions => [ "lower(name) = ?", name.downcase ])
對於DataMapper的,你必須使用
Student.all(:conditions => [ "lower(name) = ?", name.downcase ])
看看這個相似的答案:http://stackoverflow.com/questions/7659045/case-insensitive-like-ilike-in-datamapper-with-postgresql –
不要忘記接受相應的答案 – Jeet