简体   繁体   English

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

[英]How to use searchkick search method on an array

I have a Project and a Meeting Model in my application. 我的应用程序中有一个项目和一个会议模型。

Query in meetings controller is as follows: 会议控制器中的查询如下:

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

In project model: 在项目模型中:

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

I want to use search method on all_meetings variable like all_meetings.search but getting error as 我想对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'

How can I do this? 我怎样才能做到这一点?

you have to convert this whole logic to elasticsearch functionalities. 您必须将整个逻辑转换为elasticsearch功能。 put pagination and "get_all_meetings" filtering mechanism to a searchkick where clause. 将分页和“ get_all_meetings”过滤机制放到searchkick where子句中。 you can add more data to elasticsearch indexes by overriding "serach_data" function. 您可以通过覆盖“ serach_data”函数将更多数据添加到elasticsearch索引中。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM