pg_search gem ПРЕДОСТЕРЕЖЕНИЕ DEPRECATION: опасный метод запроса - PullRequest
0 голосов
/ 25 апреля 2019

Так что я просто делаю простой поиск с помощью 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 (), потому что это ввод от пользователя. Так есть идеи, как мне это структурировать?

...