Datamapper中的Case Insensitive查询

时间:2014-01-23 06:42:02

标签: ruby-on-rails datamapper ruby-datamapper

我是Datamapper的新手。有没有办法在datamapper中编写不区分大小写的查询,因为我在使用datamapper搜索表中是否存在名称。通常我们在datamapper中编写查询,比如说,

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

因此,在上面的查询中,我必须添加哪些附加运算符才能使上述查询不区分大小写。

3 个答案:

答案 0 :(得分:1)

对于datamapper,您必须使用

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

答案 1 :(得分:0)

修改您的查询:

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

答案 2 :(得分:-2)

你可以试试这个

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

或者你也可以在模态中进行验证,就像这样

validates_uniqueness_of :name, :case_sensitive => false