Так что я просто делаю простой поиск с помощью pg_search. Поиск работает отлично, я просто получаю предупреждение об устаревании.
Модель лома:
pg_search_scope :search, against: [:title, :description, :source],
using: {
:tsearch => {:prefix => true, dictionary: "english"}
}
Контроллер поиска:
def index
if params[:query].present?
@results = Scrape.search(params[:query])
end
end
Тогда я получаю предупреждение об устаревании:
ПРЕДУПРЕЖДЕНИЕ ОБ УСТРОЙСТВЕ: опасный метод запроса
используются в качестве необработанного SQL), вызываемого с неатрибутным аргументом (ами):
"pg_search_729e2f4a73e4e536b97693.rank DESC, \" scrapes \ ". \" id \ "ASC".
Аргументы без атрибутов будут запрещены в Rails 6.0. Этот метод
не должен вызываться с предоставленными пользователем значениями, такими как запрос
параметры или атрибуты модели. Известные безопасные значения могут быть переданы
оборачивая их в Arel.sql (). (вызывается из индекса в
/home/doom/Desktop/Rails/test/app/controllers/search_controller.rb:10)
Полагаю, я действительно не хочу использовать Arel.sql (), потому что это ввод от пользователя. Так есть идеи, как мне это структурировать?