rails autocomplete gem для ограничения поиска по параметру локали - PullRequest
0 голосов
/ 27 июня 2019

следующее действие вызывается для обработки гемом автозаполнения

Started GET "/nations/autocomplete_nationtranslation_name?locale=en&term=erm"

В таблице национального перевода есть индексированный столбец

t.string   "locale"

модель, определенная с помощью:

autocomplete :nationtranslation, :nome, full: true
autocomplete :nationtranslation, :nome, full: true, :extra_data => [:locale]

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

autocomplete :nationtranslation, :nome, full: true, :extra_data => params[:locale]

возвращает ActionController::RoutingError (undefined local variable or method 'params' for NationsController:Class

Как автозаполнение может запустить поиск с областью действия
locale = params [: locale]
?

1 Ответ

1 голос
/ 27 июня 2019

Единственный способ, которым я вижу, - предоставить собственный метод действия контроллера, который по умолчанию генерируется rails-jquery-autocomplete gem.

class NationsController < ApplicationController

  # you don't really need this anymore
  # autocomplete :nationtranslation, :name

  def autocomplete_nationtranslation_name
    translations = Nationtranslation.where("name LIKE ? AND locale = ?", 
                                           "%#{params[:term]}%", 
                                           params[:locale])
                                    .order(:name)
    render json: translations.map { |t| {id: t.id, label: t.name, value: t.name} }    
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...