Существует ли Gem for Rails, который может автоматически добавлять условия фильтра в ActiveRecord из строки запроса? - PullRequest
0 голосов
/ 10 февраля 2020

Я попытался выполнить поиск, и я уверен, что он должен существовать, но мои условия поиска должны быть немного ошибочными.

Я хочу реализовать более эффективный способ фильтрации JSON ответов API в моем приложении.

Например, со следующим запросом (свободно основанным на синтаксисе API Chargebee):

GET /invoices?customer_email[in]=[person1@abc.com,person2@abc.com]&created_at[lt]=2019-06-01&total_amount[gt]=500&sort_by[desc]=id

запрос ActiveRecord будет выглядеть примерно так (псевдокод):

Invoice.where("customer_email IN ?", ['person1@abc.com', 'person2@abc.com'])
       .where("created_at < ?", "2019-06-01")
       .where("total_amount > ?", 500)
       .order(id: :desc)

или на простом английском языке Engli sh:

A list of invoices
  - where the customer's email is person1@abc.com or person2@abc.com
  - which was created before 2019-06-01
  - where the total amount was greater than 500
  - sorted by id descending

Я надеюсь, что существующий Gem может получить строку запроса и построить ActiveRecord, как описано выше.

Синтаксис строки запроса, ожидаемый гемом, не обязательно должен быть идентичен приведенному выше, а должен быть примерно таким же. т. е. более мощный фильтр, чем встроенный в Rails синтаксис фильтрации, который создает громоздкие длинные строки запросов.

Кто-нибудь может подсказать мне правильное направление?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...