Ruby on rails ruby on rails、meta_搜索和不区分大小写的oracle
我正在rails项目中使用meta_搜索gem。数据库是Oracle数据库,“like”区分大小写。有人知道我如何为get查询创建一个新条件或其他什么吗Ruby on rails ruby on rails、meta_搜索和不区分大小写的oracle,ruby-on-rails,ruby-on-rails-3,oracle,case-sensitive,meta-search,Ruby On Rails,Ruby On Rails 3,Oracle,Case Sensitive,Meta Search,我正在rails项目中使用meta_搜索gem。数据库是Oracle数据库,“like”区分大小写。有人知道我如何为get查询创建一个新条件或其他什么吗 UPPER(NAME) LIKE UPPER('User Firstname') scope :incasesensitive_name, lambda {|name| where('UPPER(name) LIKE ?', "%#{name.upcase}%")} -前两个代码示例。只需将其重写为:incasesensitive\u na
UPPER(NAME) LIKE UPPER('User Firstname')
scope :incasesensitive_name, lambda {|name| where('UPPER(name) LIKE ?', "%#{name.upcase}%")}
-前两个代码示例。只需将其重写为:incasesensitive\u name
或任何您想要的内容,并将此类文本字段添加到搜索表单中,而不是:backwards\u name
UPPER()
内置于Oracle AFAIR中,因此作用域可能如下所示:
UPPER(NAME) LIKE UPPER('User Firstname')
scope :incasesensitive_name, lambda {|name| where('UPPER(name) LIKE ?', "%#{name.upcase}%")}
希望能有所帮助。以防有人需要使用ransack执行此操作:
ransacker :subject_cs, :formatter => proc {|v| v.downcase }, :splat_param => true, :type => :string do
arel_table[:subject].lower
end
刚刚用rism的oracle增强版gem、Rails 4、oracle 9i进行了尝试,效果非常好!在我的例子中,name_cs_cont生成sql,包括
WHERE((较低的(“足球运动员”。“名字”)如“%brady%”)
这就是它应该做的,很高兴我能帮上忙