Построение запроса в рельсах - PullRequest
0 голосов
/ 23 декабря 2018

Мне нужно обработать данные фильтра в бэкэнде и вернуть человека, который соответствует этим условиям фильтра.Условия фильтрации должны быть похожи на ((filter A or filter B or filter C) and (filter D or filter E)) Условия фильтрации должны быть похожи на «имя содержит имя».У меня есть области для каждого условия фильтра, например, scope :contains,-> (params){ where('name ilike :name', name: params[:name]}.

. Я планирую построить запрос с union для ORing фильтров.Я планировал получить результат каждого фильтра User.contains(params), используя to_sql.И объединить все фильтры с или условием, используя объединение SQL, и объединить условия и, используя активную запись merge.И выполнить необработанный запрос, используя ActiveRecord::Base.connection.execute(sql).

Есть ли другие способы обработки фильтров такого типа?

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