2016-08-23 16 views
1

私はイベントのコレクションをリストするRails 5アプリケーションを持っています。私はSearchKickをうまくセットアップしましたが、今からのイベントだけを表示する機能を追加しようとしていますが、実装には苦労しています。私は現在、以下があります。 SearchKickの日付範囲クエリ(弾性検索)

class EventsController < ApplicationController 

    def index 
     query = params[:j].presence || "*" 
     conditions = {} 
     conditions[:sector_name] = params[:sector_name] if params[:sector_name].present? 
     conditions[:service_name] = params[:service_name] if params[:service_name].present? 
     conditions[:start_date] = params[:start_date] if params[:start_date].present? 
     @events = Event.search query, where: conditions, aggs: [:sector_name, :service_name], range: {start_date: {"gte": "now/d"}}, order: {start_date: {order: "asc", unmapped_type: "long"}}, page: params[:page], per_page: 10 
    end 
    ... 
end 

start_date

events_controller.rb

は私のPostgresのDBに date型です。

私はindex.html.erbに行っても、今日の日付より前にはstart_dateのイベントが表示されています。

答えて

1

これを解決しました。

def index 
    query = params[:j].presence || "*" 
    conditions = {start_date: {"gte": "now/d"}} 
    conditions[:sector_name] = params[:sector_name] if params[:sector_name].present? 
    conditions[:service_name] = params[:service_name] if params[:service_name].present? 
    conditions[:start_date] = params[:start_date] if params[:start_date].present? 
    @events = Event.search query, where: conditions, aggs: [:sector_name, :service_name], order: {start_date: {order: "asc", unmapped_type: "long"}}, page: params[:page], per_page: 10 
end 

私は単純に条件ハッシュにstart_date: {"gte": "now/d"}を渡しました。これは今、私のaggs検索と連動して動作することを意味します。

+0

こんにちは。セクター名とサービス名を選択できるようにしていれば、インデックスに集計をどのように表示しますか?ありがとう – loloso