pg_search gem弃用警告:危险的查询方法

时间:2019-04-25 18:40:10

标签: ruby-on-rails-5 pg-search

所以我只是用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

然后我收到弃用警告:

  

DEPRECATION警告:危险的查询方法(其参数的方法   用作原始SQL),并使用非属性参数调用:   “ pg_search_729e2f4a73e4e536b97693.rank DESC,\”抓取\“。\” id \“ ASC”。   在Rails 6.0中将禁止使用非属性参数。这个方法   不应使用用户提供的值(例如请求)来调用   参数或模型属性。已知安全值可以通过   将它们包装在Arel.sql()中。 (从索引处调用   /home/doom/Desktop/Rails/test/app/controllers/search_controller.rb:10)

我假设我真的不想使用Arel.sql(),因为它是来自用户的输入。那么有什么想法我应该如何构造呢?

0 个答案:

没有答案