У меня есть поле формы в моем представлении Rails, подобное этому:
<%= f.text_field :date, :class => "datepicker" %>
Функция javascript преобразует все поля ввода этого класса в средство выбора даты jQueryUI.
$(".datepicker").datepicker({
dateFormat : "dd MM yy",
buttonImageOnly : true,
buttonImage : "<%= asset_path('iconDatePicker.gif') %>",
showOn : "both",
changeMonth : true,
changeYear : true,
yearRange : "c-20:c+5"
})
Пока все хорошо. Я могу отредактировать запись, и она сохраняет дату правильно на всем пути к базе данных. Моя проблема заключается в том, что я хочу снова отредактировать запись. Когда форма предварительно заполняется из записи, она отображается в формате «гггг-мм-дд». JavaScript форматирует только даты, выбранные в элементе управления datepicker. Есть ли способ отформатировать дату, полученную из базы данных? На каком этапе я могу это сделать?
Спасибо, Дэни.
Еще подробности после обсуждения ниже, моя форма распределена по двум файлам, представлению и частичному. Вот представление:
<%= form_tag("/shows/update_individual", :method => "put") do %>
<% for show in @shows %>
<%= fields_for "shows[]", show do |f| %>
<%= render "fields", :f => f %>
<% end %>
<% end %>
<%= submit_tag "Submit"%>
<% end %>
А вот частичное представление _fields
:
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<p>
<%= f.date %>
<%= f.label :date %>
<%= f.text_field :date, :class => "datepicker" %>
</p>
Код контроллера:
def edit_individual
@shows = Show.find(params[:show_ids])
end
I добавили следующее в environment.rb
:
Date::DATE_FORMATS.merge!(
:default => "%d %B %Y"
)
Теперь он отображает правильный формат, когда я использую @ show.date в представлении, но помощник формы по-прежнему отображает необработанный формат.