私は、検索機能の日付を選択するためのDateTimeピッカーを実装しようとしている新しいRORユーザーです。Ruby on Rails、2つの日付間の日付ピッカー検索
私の問題は、DatePickerに2つの日付(日付、日付、および日付)を入力すると、検索結果に一貫性がないことです。時には結果が得られないこともあり、結果がすべて得られることもあります。私もbootstrap-datepicker-rails
の宝石とransack
の宝石を使用しています。
これが私の見解は、私が参照しています2つのデータベース列がDEPARTURE_DATE、およびRETURN_DATEある
<div class="field">
<%= f.label :departure_date_gteq, "Departure Date Between" %>
<%= f.search_field :departure_date_gteq, "data-provide" => "datepicker" %>
<%= f.label :return_date_lteq, "and" %>
<%= f.search_field :return_date_lteq, "data-provide" => "datepicker" %>
</div>
のように見えるものです。格納されている日付は、日時であり、このように見える、
departure_date
2016-08-07 00:00:00.000000
return_date
2016-08-14 00:00:00.000000
私はDatePickersで2016年8月6日と2016年8月15日を入力して、私はすべての結果が返されています。
私の検索フォームDatePickerは、データベースのDateTimeと正しく比較できないデータを送信していますか?
私は 'gteq'と 'lteq'呼び出しを正しく使用していますか?
EDIT#1 @Michael Gaskill、問題が日付の書式であることは間違いありません。手動で日付を入力すると、正しい検索結果が得られます。私はちょうどコントローラに渡される前にフォーマットを修正する方法を理解する必要があります。
私のコントローラは次のようになります。
class HomeController < ApplicationController
def index
@search = Sailing.search(params[:q])
@sailings = @search.result
... Other calls ...
end
end
ここには、セーリングのコンテンツを生成する私のビュー内の完全なコードがあります。私はsearch_for_forを使用していますが、これは豪華な宝石の一部です。
<%= search_form_for @search, url: root_path, method: :post do |f| %>
<div class="field">
<%= f.label :cruise_ship_name_or_cruise_ship_company_or_destination_identifier_cont, "Cruise Ship Name" %>
<%= f.text_field :cruise_ship_name_or_cruise_ship_company_or_destination_identifier_cont %>
</div>
<div class="field">
<%= f.label :departure_date_gteq, "Departure Date Between" %>
<%= f.search_field :departure_date_gteq, "data-provide" => "datepicker" %>
<%= f.label :return_date_lteq, "and" %>
<%= f.search_field :return_date_lteq, "data-provide" => "datepicker" %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
感謝。
お返事ありがとうございます!ここで私が働いているクエリです。 search = Sailing.search(params [:q])は私のクエリです。私はここにデータを渡していますsailings = search.result。コントローラーまたはビューの書式を変更する必要はありますか? – Aptorian
コントローラ内。私は 'Sailing#search'に関連してあなたがそれをどうやって行うのかの例をいくつか挙げて答えを更新しました。 –
ご返信ありがとうございます。現時点では動作しないようですが、明日にもう一度試してみます。乾杯。 – Aptorian