【发布时间】:2012-07-06 09:46:48
【问题描述】:
我在我的 rails 项目中使用 meta_search gem。该数据库是 Oracle 数据库,“like”区分大小写。有人知道我如何为获取这样的查询创建新条件或其他内容:
UPPER(NAME) LIKE UPPER('User Firstname')
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 oracle case-sensitive meta-search
我在我的 rails 项目中使用 meta_search gem。该数据库是 Oracle 数据库,“like”区分大小写。有人知道我如何为获取这样的查询创建新条件或其他内容:
UPPER(NAME) LIKE UPPER('User Firstname')
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 oracle case-sensitive meta-search
以防万一有人需要洗劫:
ransacker :subject_cs, :formatter => proc {|v| v.downcase }, :splat_param => true, :type => :string do
arel_table[:subject].lower
end
【讨论】:
WHERE ((LOWER("FOOTBALL_PLAYER"."FIRST_NAME") LIKE '%brady%'
meta_search method class - 前两个代码示例。只需将 :backwards_name 重写为 :incasesensitive_name 或您想要的任何内容,然后将此类文本字段添加到您的搜索表单。
UPPER() 内置在 Oracle AFAIR 中,因此范围可能如下所示:
scope :incasesensitive_name, lambda {|name| where('UPPER(name) LIKE ?', "%#{name.upcase}%")}
希望对你有帮助。
【讨论】: