ruby-on-rails - Rails where LIKE 和 array

标签 ruby-on-rails activerecord

我怎么能做这样的事情?

myarray = ["name1","name2"]
Product.where('name ILIKE ?', %#{myarray}%)

我需要获取名称类似 name1 的所有产品和 name2 .

这可能吗?

最佳答案

我想你想用 ILIKE 测试所有值功能。

这是在 Postgres 中完成的方式:

select * from table where value ilike any (array['%foo%', '%bar%', '%baz%']);

尝试像这样转换为 Rails/Ruby 语法:
myarray_with_percetage_signs = ["name1","name2"].map {|val| "%#{val}%" }
Product.where("name ILIKE ANY ( array[?] )", myarray_with_percetage_signs)

关于ruby-on-rails - Rails where LIKE 和 array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19412607/

相关文章:

ruby-on-rails - Rails 4,如何使用行号记录文件

ruby-on-rails - 具有事件记录的不区分大小写的搜索

ruby-on-rails-4 - Rails 1 到 4 升级 :include keyword

ruby-on-rails-3 - 使用 .all 与 where 查找全部

ruby-on-rails - 评估 :dependent => :destroy

ruby-on-rails - 未知验证器 : 'BeforeValidator' when validating date in Rails

ruby-on-rails - Rails - 异步发送所有带有 delayed_job 的电子邮件

ruby-on-rails - Ruby 在运行时将变量转换为常量

ruby-on-rails - 在 Rails 应用程序中使用服务类

javascript - Mapbox map 未随 Rails 显示