Я должен выполнить поиск в базе данных с помощью ransack. Несколько столбцов в базе данных имеют данные, хранящиеся в сериализованных массивах. Я хочу сопоставить точные данные, хранящиеся в массивах, с данными, отправленными пользователем для выполнения поиска (данные пользователей также являются массивами). Например, в базе данных один столбец имеет данные как (c1
, c2
- тестовые примеры):
c1.column_data = [1, 2, 3, 4, 5]
c2.column_data = []
Пользователь ищет данные (t1
, t2
, t3
- это тестовые примеры):
t1.user_data = [1]
t2.user_data = [1, 3]
t3.user_data = [1, 2, 3, 4, 5]
t4.user_data = []
- Для случая
c1
сt1
,t2
,t4
он не должен возвращатьno match found
. - С
t3
это должно получиться сmatch found
. - Для случая
c2
сt1
,t2
,t3
он не должен возвращатьno match found
. - С
t4
он возвращает результат.
Я нашел postgres_ext gem, но я не могу заставить его работать. Может ли кто-нибудь предложить, как я могу это сделать или предложить какой-либо альтернативный метод для поиска? Любое альтернативное решение также приветствуется.