简体   繁体   English

Datamapper中不区分大小写的查询

[英]Case Insensitive query in Datamapper

I am new to Datamapper. 我是Datamapper的新手。 Is there any way to write case insensitive query in datamapper because I am searching for presence of a name in a table with datamapper. 有什么办法可以在datamapper中编写不区分大小写的查询,因为我正在使用datamapper搜索表中是否存在名称。 Normally we write query in datamapper like this say, 通常我们会像这样说在datamapper中编写查询,

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

So in the above query what additional operator I have to add to make the above query case insensitive. 因此,在上述查询中,我必须添加什么附加运算符以使上述查询不区分大小写。

对于数据映射器,您必须使用

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

Modify your query: 修改查询:

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

You can try this 你可以试试这个

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

or you can put validation in modal also like this 或者您也可以像这样将验证放入模式

validates_uniqueness_of :name, :case_sensitive => false

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM