У меня есть представление, которое принимает Ruby Date, выполняет некоторое форматирование для него, чтобы вывести только время в формате [5:30 PM]. Затем по умолчанию он добавляет к этому 30 минут, чтобы результат был похож на следующий результат:
17:30 - 18:00
и код в файле haml выглядит следующим образом:
=format_time( @time ) + " - " + format_time( Time.parse( @time ).advance( :minutes => 30 ) )
где format_time - метод, который я создал.
Но тогда пользователь может изменить «продолжительность», изменив выбор в выпадающем списке. Допустим, пользователь выбирает «60» в поле со списком, мне нужно добавить 60 минут ко времени начала и обновить вывод следующим образом:
17:30 - 18:30
Проблема в том, что при первой загрузке страницы форматирование происходит в моем Ruby-методе format_time. Но после выбора в выпадающем списке я думаю, что форматирование должно быть сделано в Javascript, вызванном событием «onchange» в выпадающем списке. Но это означает, что я должен поддерживать два разных метода для одинакового форматирования.
Есть ли лучшее решение для этого?