Как использовать метод поиска searchkick по массиву - PullRequest
0 голосов
/ 27 августа 2018

В моем приложении есть проект и модель собрания.

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

all_meetings = Project.get_all_meetings @project
meetings = Kaminari.paginate_array(all_meetings).page(params[:page]).per params[:per_page]
render_collection meetings, Meeting

В модели проекта:

def self.get_all_meetings project
    active_meetings =  project.meetings.without_deleted.order updated_at: :desc
    cancelled_meetings =  project.meetings.only_deleted.order updated_at: :desc
    active_meetings + cancelled_meetings
end

Я хочу использовать метод поиска для переменной all_meetings, такой как all_meetings.search, но получаю ошибку как

NoMethodError (undefined method `search' for #<Array:0x00007f20b0b74238>
Did you mean?  bsearch
               each):

app/controllers/api/v1/pm/meetings_controller.rb:9:in `index'
app/controllers/api/v1/base_controller.rb:85:in `set_global'
app/controllers/api/v1/base_controller.rb:117:in `handle_exceptions'

Как я могу это сделать?

1 Ответ

0 голосов
/ 16 января 2019

Вы должны преобразовать всю эту логику в функции эластичного поиска. Поместите механизм фильтрации pagination и "get_all_meetings" в условие поиска. Вы можете добавить больше данных в индексы эластичного поиска, переопределив функцию "serach_data".

...