こんにちは私の電話はありますが、私が帰宅したらこの回答が更新されます。これは基本的にあなたが探しているものですが、データのウィンドウはdateTimeではなく特定の日の間にあるので、時間/分などを追加する必要があります。SimpleForm gemを使用しても簡単ですが、 regular form_for代わりに。 jquery datepickerを使用するのはすごく簡単に設定できるからです。重要な点は、jqueryのdatepickerの入力は文字列なので、次のように再フォーマットする必要があることです。あなたは日付ピッカーは、(私はクラスの日付ピッカー」を使用)のために投入されたことにしたい各フォーム要素にクラスを追加する必要があります下のビューで:
<%= simple_form_for @ionit_tank_input, url: controller_path_here, html: { multipart: true, method: :post, class: "whatever_css_styling_classes", role: "form"} do |f| %>
<%= f.error_notification %>
<div class="form-group">
<%= f.input :date1, as: :string, :placeholder => 'From (MM/DD/YYYY)', label: false, required: false, input_html: {class: "form-control form-input-colorss datepicker"} %>
</div>
<div class="form-group">
<%= f.input :date2, as: :string, :placeholder => 'To (MM/DD/YYYY)', label: false, required: false, input_html: {class: "form-control form-input-colorss datepicker"} %>
</div>
<%= f.submit "See History", class: "btn btn-primary block full-width m-b" %>
<% end %>
このスクリプトを追加します。 jquery datepickerがインストールされたら、対応するアセットjsファイルに追加します。
<script type="text/javascript">
$('input.datepicker').datepicker({
keyboardNavigation: false,
forceParse: false,
autoclose: true
});
</script>
コントローラでは、必要に応じて選択した受信日時をフォーマットできます。以下のコードは月/日/年にフォーマットすることですが、HH:MMを追加することもできます。フォームから入力されるユーザー入力は文字列になりますので、strptimeを使用して変換する必要があります。
from = DateTime.strptime("#{params[:ionit_tank_input][:date1]}", '%m/%d/%Y')
to = DateTime.strptime("#{params[:ionit_tank_input][:date2]}", '%m/%d/%Y')
to = to + 1.day
@inputs = @tank.ionit_tank_inputs.where(["created_at > ? and created_at < ?", from, to ])
@inputsは、この2日間の情報の選択です。必要であれば、datetimeを使用できます。
なぜdatetimeを使用しないのですか? – Ilya
plz詳細をご説明ください。 – John