неопределенный метод `strftime 'для" {1 => 2019, 2 => 7, 3 => 7, 4 => 16, 5 => 0} ": String Вы имели в виду? полоса - PullRequest
0 голосов
/ 07 июля 2019

Я стараюсь, чтобы вывод времени был приятным способом. Вот мой код в новом

<%= form_for @reservation do |f| %>
   <span><label>Pick up time</label></span>
     <%= f.time_select :time,ampm: true, class: "textbox"%></span>
<% end %>

А вот и в выходном файле

<strong>Pick up Time:</strong> <%= @reservation.time.strftime("%H:%M")  %>

Я получил эту ошибку неопределенный метод `strftime 'для" {1 => 2019, 2 => 7, 3 => 7, 4 => 16, 5 => 0} ": строка Ты имел ввиду? полоса

Пожалуйста, кто-нибудь, помогите мне исправить это

Ответы [ 2 ]

1 голос
/ 08 июля 2019

Как Себастьян упоминает в комментарии;похоже, ваш time объект является хешем.Чтобы вызвать strftime, ваш объект должен быть :datetime.

. Чтобы это исправить, вы должны изменить тип столбца в вашей базе данных на тип datetime (а также изменить формы для сохранения значения datetime).

Альтернативой может быть построение строки, которую вы хотите отобразить вручную, используя то, что находится в time (без использования strftime).

0 голосов
/ 10 июля 2019

Если вы хотите использовать только этот хеш, то вам нужно проанализировать его по дате, как показано ниже

a = {1=>2019, 2=>7, 3=>7, 4=>16, 5=>0}
time = (a.values.first(3).join("/") + " "+ a.values.last(2).join(":")).to_datetime.strftime("%I:%M %p")

После анализа даты и времени вы можете использовать любой метод даты и времени.

...