Ruby on Rails,meta_search和不区分大小写的oracle



我正在我的轨道项目上使用meta_search gem。 该数据库是 Oracle 数据库,"like"区分大小写。 有人知道我如何为这样的查询创建一个新条件或其他东西吗:

UPPER(NAME) LIKE UPPER('User Firstname')

meta_search方法类 - 前两个代码示例。而不是:backwards_name将其重写为:incasesensitive_name或任何您想要的内容,并将此类文本字段添加到您的搜索表单中。

UPPER()内置于 Oracle AFAIR 中,因此范围可能如下所示:

scope :incasesensitive_name, lambda {|name| where('UPPER(name) LIKE ?', "%#{name.upcase}%")}

希望对您有所帮助。

以防万一有人需要用洗劫袋来做这件事:

ransacker :subject_cs, :formatter => proc {|v| v.downcase }, :splat_param => true, :type => :string do
    arel_table[:subject].lower
end

最新更新