Задать вопрос
@modernstyle
Code GOD

Формат даты в рельсах?

Рельсоводы, помогите. По замыслу, мой пользователь при помощи datepicker (jquery-ui) выбирает дату,


JS

jQuery ->
  $('.datepicker').datepicker({ 
  	dateFormat: "dd.mm.y",
  	firstDay: 1
  });



New.html.erb

<p>
  	<%= f.label :start_date, "Начало" %><br>
	<%= f.text_field :start_date, class: "datepicker" %>
  </p>



Затем эта дата выводится в самых разных вьюхах. Проблема в том, что рельсы выводят ее в формате 0000-00-00, соответственно если ввести в форме 02.07.13, на выходе получается 0002-07-13.


Нашел рабочий вариант с .strftime("%d %b. %Y"), но хотелось бы опуститься глубже, а не вбивать этот метод напротив каждой даты.


Где это искореняется? Попробовал разные костыли со StackOverflow, но пока ничего не помогло. Спасибо
  • Вопрос задан
  • 4004 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@modernstyle Автор вопроса
Code GOD
Победил проблему используя locale и dateFormat в плагине
если что пишите в приват, расскажу как
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
SeTeM
@SeTeM
Можно переписать get-метод:

def start_date
  self[:start_date].strftime("%d %b. %Y") if self[:start_date]
end
Ответ написан
Meliborn
@Meliborn
Helper или attr_accessor что то типа :start_date_human с strftime
Ответ написан
Комментировать
Grigorieff
@Grigorieff
Вообще можно через i18n.l сделать, а в конфиге en.yml указать формат вывода даты и времени по умолчанию такой как вам нужен.

А еще в файле config/environment.rb можно указать насколько помню:

my_format = { :default => '%d %b. %Y' } 

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(my_format) 

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(my_format)
Ответ написан
jj_killer
@jj_killer
Я использовал text_field с типом date с фолбеком на jquery ui. А вне инпута — time_tag форматируя содержания js'ом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы