Поиск по шаблону регулярных выражений ActiveRecord - PullRequest
2 голосов
/ 28 января 2020

Есть ли способ поиска по шаблону Regex в ActiveRecord? У меня есть коллекция продуктов. Я хотел бы искать эти продукты, основываясь на их столбце sku, отвечающем ряду шаблонов.

SKU, содержащие отдельные буквы от [AZ], следует рассматривать premium products SKU, содержащие отдельные буквы [AZ] и цифру [ 0-9] следует считать standard products SKU с двойными буквами, а ди git [0-9] следует считать flash products

Вот псевдокод того, что мне нужно:

product.sku ~= /[A-Z]$/  => Premium Products
product.sku ~= /[A-Z][0-9]$/ => Standard Products
product.sku ~= /[A-Z]{2}[0-9]$/ => Flash products

Я не хочу использовать ruby select фильтрацию. Возможно ли это через активную запись?

1 Ответ

4 голосов
/ 28 января 2020

Если вы используете базу данных, которая поддерживает сопоставление регулярным выражениям, это возможно. Например: Postgres. Я сделал поиск регулярных выражений в ActiveRecord, используя Postgres в качестве базы данных. Вы можете прочитать эту статью

Так что в вашем случае вы можете просто сделать:

premium_products = Product.where("sku ~ ?", '[A-Z]$')
standard_products = Product.where("sku ~ ?", '[A-Z][0-9]$')
flash_products = Product.where("sku ~ ?", '[A-Z]{2}[0-9]$')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...