我的应用程序中有一个项目和一个会议模型。
在会议控制器中的查询如下:
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'
我该怎么做?
答案 0 :(得分:0)
您必须将整个逻辑转换为elasticsearch功能。将分页和“ get_all_meetings”过滤机制放到searchkick where子句中。您可以通过覆盖“ serach_data”功能向弹性搜索索引添加更多数据。