Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ruby on rails、meta_搜索和不区分大小写的oracle_Ruby On Rails_Ruby On Rails 3_Oracle_Case Sensitive_Meta Search - Fatal编程技术网

Ruby on rails ruby on rails、meta_搜索和不区分大小写的oracle

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

我正在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 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%”)
这就是它应该做的,很高兴我能帮上忙