Формат даты в Rails в режиме редактирования

0

Я создаю Edit form в rails, используя partial для new и edit. Я использую jquery date picker, поэтому пользователь может выбрать дату с jquery-ui

моя проблема в том, как мне отформатировать все поля даты, потому что в форме редактирования все это показывает "YYYY-MM-DD". Мне бы хотелось, чтобы он показывал "d d- mm-yyyy"

например, дата бронирования, она показывает 2014-04-20, мне хотелось бы 20-04-2014

Я изменил config/initializers/date_formats.rb Date :: DATE_FORMATS [: default] = "% d-% m-% Y" он работает только в форме показа, но не в режиме редактирования

также в консоли rails (используя отладчик) Я проверяю формат даты "YYYY-MM-DD", есть ли способ его изменить

для справки ниже приведено мое show.html.erb и edit.html.erb (частично)

show.html.erb

  <% if logged_in? %>
    <p>Booking Date <br> <%= @booking.booking_date %>  </p>

edit.html.erb

<%= form_for @booking do |f| %>
    <%= render 'common/form_errors', object: @booking %>
    <%= f.label :booking_date, "Booking Date" %><br>
    <%= f.text_field :booking_date, :class => :datepicker, size: 10  %>
  • 0
    Привет, если 'show' работает, когда вы ставите @ booking.booking_date, как Rails, он работает нормально, однако вы упоминаете, что 'edit' по-прежнему отображает дату в неправильном формате, возможно, это может быть связано с jQuery, если это так в этом случае это может помочь: api.jqueryui.com/datepicker/#option-dateFormat
  • 0
    спасибо, я удалил класс datepicker и обновил страницу, но все равно получаю тот же результат
Показать ещё 3 комментария
Теги:
date
ruby-on-rails-4

1 ответ

4
Лучший ответ

Вы можете добавить значение даты вручную, если форма редактируется.

[email protected]_date.striftime("%d-%m-%YYYY")

20-04-2014

edit.html.erb

<%= form_for @booking do |f| %>
    <%= render 'common/form_errors', object: @booking %>
    <%= f.label :booking_date, "Booking Date" %><br>
    <%= f.text_field :booking_date, :class => :datepicker, size: 10, :value=>"#{f.object.booking_date.striftime("%d-%m-%YYYY") unless f.object.new_record?}"  %>
  • 1
    Спасибо, я использую ваше решение с небольшой коррекцией: value => "# {f.object.booking_date.strftime ("% d-% m-% Y "), если только f.object.new_record?}"
  • 0
    Спасибо, что поправили меня. Это правильно

Ещё вопросы

Сообщество Overcoder
Наверх
Меню