Я строю приложение, чтобы сделать список с Ruby On Rails, и каждый элемент в моем Task
ресурс имеет deadline
атрибут, который создается с драгоценным камнем 'datetimepicker'
.Rails преобразовать DateTimePicker строку даты типа данных даты и времени
Этот 'datetimepicker'
камень тянет даты как тип string
данных с форматом "12/13/2012"
, "%m/%d/%Y"
.
Я пытаюсь сгруппировать task
элементов по значению дня в их атрибуте deadline
. Я нашел одну статью о том, как это сделать (хотя я думаю, что она содержит одну опечатку):
https://ariejan.net/2007/01/12/rails-group-results-by-week-using-group_by/
Однако я предпочел бы сделать работу в tasks_controller
чем task
модели (возможно, модель это более чистый способ сделать это? Я нелюбезность и открываю для этого предложения).
Я нашел еще одну статью о методе group_by
, который демонстрирует приближенный процесс:
http://railscasts.com/episodes/29-group-by-month?view=asciicast
Эта статья выглядит немного очистителя для меня. Это требует от меня использовать метод .beginng_of_day
для обработки всех task
элементов с одинаковым значением дня в их deadline
.
У меня проблема с обоими методами, которая заключается в том, что они обрабатывают deadline
как тип данных datetime
. Я хочу использовать метод .to_datetime
для преобразования task.deadline
, но 'datetimepicker'
камень форматирует deadline
string
точно неправильный путь для .to_datetime
, чтобы преобразовать его:
"12/13/2012".to_datetime # => ArgumentError: invalid date
см => apidock [точка] ком [слэш] рельсы [ слэш] String [слэш] to_datetime
Я нашел подобную статью, которая рекомендует переформатирования атрибут deadline
с .strptime
и .strftime
методами, но я не вижу, как это сделать, когда deadline
является string
и не a datetime
:
см => StackOverflow [точка] ком [слэш] вопросы [слэш] 16296885 [слэш] как к обращенным-DateTime-подборщика значение к DateTime-в-рубин-на-рельсы
Может кто-нибудь помочь мне сделать это преобразование или предложить другую (желательно более простая!) Стратегия для группировки задач в день?
Благодарим за помощь и извинения за неработающие ссылки; У меня нет достаточных точек репутации для встраивания более 2.
я мог бы использовать даты и опускаем метод «.beginning_of_day», но тогда я не потерять данные времени от задачи? Я хочу сгруппировать задания по дате, но все же покажу время после этого. –
Если столбец задач - это дата-время, то нет, вы не будете. –
есть. я решил использовать «datetime» вместо «date» и группировать по дням с использованием метода «.to_date». Благодарим вас за повторное форматирование вашей помощи. –