Итак, у меня есть форма поиска, и я пытаюсь получить дату из URL, но я не получаю ее.
<%= form_with(url: "/flights", method: "get", local: true) do %>
<%= label_tag :from %>
<%= select_tag(:start_airport, options_for_select(@airport_options)) %> <br> <br>
<%= label_tag :to %>
<%= select_tag(:finish_airport, options_for_select(@airport_options)) %> <br> <br>
<%= label_tag :passengers %>
<%= select_tag(:passengers, options_for_select(@passengers)) %> <br> <br>
<%= select_tag(:date, options_for_select(@dates_options)) %> <br> <br>
<%= submit_tag("Search") %>
Я думаю, что мне нужно преобразовать дату, но когда я try
@flights = Flight.where(start_airport_id: params[:start_airport], finish_airport_id: params[:finish_airport], date: date: DateTime.strptime(params[:date], "%d %b %H:%M"))
Я не получаю неявное преобразование nil в строковую ошибку.
flight_controller.rb
def index
@airport_options = Airport.all.map { |a| [a.code, a.id] }
@passengers = (1..4).to_a
@dates_options = Flight.order('date ASC').pluck(:date).map { |date| date.strftime("%d %b %H:%M") }
@flights = Flight.where(start_airport_id: params[:start_airport], finish_airport_id: params[:finish_airport], date: params[:date])
end
Даты в моей базе данных в этом формате "Сб , 02 мая 2020 г. 22:21:00 UT C +00: 00 ".
В URL: http://localhost: 3000 / полеты? Start_airport = 1 & finish_airport = 2 & пассажиров = 1 & date = 02 + Май ++ 22% 3A21 & commit = Search
В отладчике: ---! Ruby / object: ActionController :: Параметры параметров:! Ruby / ha sh: ActiveSupport :: HashWithIndifferentAccess
дата: 02 мая 22: 21
действие: индекс разрешен: false