Время форматирования между Rails и Javascript - избегая дублирования кода на разных языках - PullRequest
0 голосов
/ 03 июля 2010

У меня есть представление, которое принимает 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» в выпадающем списке. Но это означает, что я должен поддерживать два разных метода для одинакового форматирования.

Есть ли лучшее решение для этого?

Ответы [ 2 ]

1 голос
/ 03 июля 2010

Делайте все форматирование в javascript. Пусть haml выведет неформатированное время в виде переменной javascript, затем отформатирует и отобразит его с помощью javascript. Это позволит избежать лишних вызовов AJAX и позволит вам сохранить код форматирования в одном месте.

1 голос
/ 03 июля 2010

Один из вариантов заключается в том, чтобы javascript отправлял запрос AJAX на некоторую страницу рельсов, единственной задачей которой является форматирование даты, используя тот же метод, что и раньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...