在我的 Rails 控制器中,我想对我的模型进行正则表达式搜索。我的谷歌搜索似乎表明我必须写如下内容:
Model.find( :all, :condition => ["field REGEXP '?' " , regex_str] )
这是相当讨厌的,因为它暗示了 MySQL 语法(我正在使用 Postgres)。
有没有一种更简洁的方法来强制 rails(在我的情况下为 4 个)在字段上进行正则表达式搜索?
我也更喜欢使用 using where()
,因为它允许我将我的强参数(哈希)直接映射到查询。所以我想要的是:
Model.where( params, :match_by => { 'field': '~' } )
这将松散地转换为类似 (if params['field'] = 'regex_str')
select * from models where field ~ regex_str