簡體   English   中英

在rails / ruby​​中查找搜索結果日期范圍內的事件

[英]find events within date range of search results in rails/ruby

我為此付出了一些努力,我的網站上使用searchkick可以使用搜索功能。

但是我想允許我的用戶在結果頁面上過濾結果。

這是我的控制器供參考:

def search
    @events = Event.page(params[:page]).per(10).search(params[:search], misspellings: { distance: 1 }, order: { date: :asc, eventname: :asc }, match: :word_start, page: params[:page], per_page: 20)
    if @events.results.any?
      render 'events/results'
    else
      @popevents = Event.limit(3).order('RANDOM()')
      render 'events/noresults'
    end
  end

現在,我想要的是視圖中的一個簡單的日期選擇器,它允許用戶搜索返回事件的日期范圍(往返),然后在提交時僅返回該范圍內的事件。 我看過filterrific,但感到困惑,不確定那是我真正需要的嗎?

任何幫助將非常感激!

編輯

所以,如果我有這個:

<label for="datefrom">Date From:</label>
      <input type="date" id="datefrom" class="form-control" name="datefrom" value="dd/mm/yyyy">
      <label for="dateto">Date To:</label>
      <input type="date" id="dateto" class="form-control" name="dateto" value="dd/mm/yyyy">

<div style="float:right">
        <button class="btn btn-info" name="button">Apply Filters</button>
      </div>

我想知道我需要在按鈕上放些什么,並且控制器中的位也可以放入if @events.results.any? 部分?

謝謝

您可以執行以下操作:

在視圖中,將date_pickers輸入如下:

<%= form_tag your_search_path, method: :post do%>
  # here your datepicker content

  <%= submit_tag 'Send' %>
<% end %>

在您的控制器中:

def search
    @events = Event.page(params[:page]).per(10).search(params[:search], misspellings: { distance: 1 }, order: { date: :asc, eventname: :asc }, match: :word_start, page: params[:page], per_page: 20)
    @events = @events.where(created_at: (Time.parse(params[:datefrom])..Time.parse(params[:dateto]))
    if @events.results.any?
      render 'events/results'
    else
      @popevents = Event.limit(3).order('RANDOM()')
      render 'events/noresults'
    end
 end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM