Rails «не может заключить в кавычки массив» по ​​запросу - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь сделать общий запрос к моей панели навигации, который проверит, может ли быть найдена запись, содержащая любое из заданных значений в любом из ее полей.

Это запрос в моей модели:

def self.basic_search(*keywords)
  where("specialties %% ARRAY[:k] or treatments && ARRAY[:k]::varchar[] or
  neighborhood = ANY(ARRAY[:k]) or name ~ ANY(ARRAY[:k])", k: keywords)
end

И в моем контроллере я передаю аргументы keywords.split(' ') этой функции.

Я получаю TypeError в моем контроллере, который заявляет, что «невозможно заключить в кавычки массив».

Как мне сделать этот запрос?

Я пытался изменить свои массивы, чтобы они соответствовали ARRAY[:k]::varchar[], следуя Active Record и PostgreSQL - Ruby on Rails Guide , но это не помоглоне похоже на работу.

1 Ответ

2 голосов
/ 31 мая 2019

Почему вы не используете Ransack Gem для поиска?

https://rubygems.org/gems/ransack/versions/1.7.0

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