Filterrific не фильтрует данные - PullRequest
0 голосов
/ 29 января 2019

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

Модель:

  filterrific(
    default_filter_params: {},
    available_filters: [
      :dictionary_word_filter
    ]
  )

  scope :dictionary_word_filter, lambda { |dictionary_word|
    where("dictionary_word LIKE :search", search: "%#{dictionary_word}%")
  }

Контроллер:

  def index
    dictionary_types = DimDictionary::DISPLAY_TYPE.map{|key, value| value }
    @dictionary_types_array = DimDictionaryType.where(dictionary_type_name: dictionary_types).pluck(:dictionary_type_name, :dictionary_type_id)
    @filterrific = initialize_filterrific(
      fetch_dictionary_collection,
      params[:filterrific],
      select_options: {},
      persistence_id: 'shared_key',
      default_filter_params: {},
      available_filters: [
          :dictionary_word_filter
        ],
    ) || return

    @dictionaries = @filterrific.find

    respond_to do |format|
      format.html
      format.js
    end
  end

Создано три файла:

Index.html.haml

= form_for_filterrific @filterrific do |f|
  .ui.form
    .fields
      .field
        Filter Word
        = f.text_field :dictionary_word_filter

  = render_filterrific_spinner

= render(partial: 'test/list', locals: { dictionaries: @dictionaries, dictionary_types_array: @dictionary_types_array })

Index.js.erb

<%  js = escape_javascript(render(partial: 'test/list', locals: { dictionaries: @dictionaries, dictionary_types_array: @dictionary_types_array })) %>

$("#filterrific_results").html("<%= js %>");

_list.html.haml

#filterrific_results
  %strong Test Is Working
  %table.table.dictionary-table
    %thead
      %tr
        %th #
        %th Type
        %th Word
        %th Replacement
    %tbody#dictionary-content-area.clusterize-content
      - counter = 0
      - dictionaries.each do |dictionary|
        - counter = counter + 1
        %tr{ data: {id: dictionary.dictionary_id, index: counter, type: dictionary.dim_dictionary_type.dictionary_type_id}}
          %td
            = counter
          %td#dictionary-type
            = dictionary.dim_dictionary_type.dictionary_type_name
          %td#original-word
            = dictionary.dictionary_word
          %td#replaced-word
            = dictionary.dictionary_replacement

Я что-то делаюздесь не так?Это все, что я добавил.Как исправить эту проблему .. используя rails 5 и ruby ​​2.5.0

И просто чтобы добавить, я не использую Postgres.используя SQL db

...