如何在数组上使用searchkick搜索方法

时间:2018-08-27 10:22:11

标签: ruby-on-rails searchkick

我的应用程序中有一个项目和一个会议模型。

在会议控制器中的查询如下:

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 :(得分:0)

您必须将整个逻辑转换为elasticsearch功能。将分页和“ get_all_meetings”过滤机制放到searchkick where子句中。您可以通过覆盖“ serach_data”功能向弹性搜索索引添加更多数据。