编辑视图中的Rails日期格式

时间:2014-04-23 14:27:29

标签: jquery ruby-on-rails ruby date ruby-on-rails-4

我正在使用partial for new和edit在rails中创建Edit表单 我正在使用日期选择器jquery,因此用户可以使用jquery-ui

选择日期

我的问题是如何格式化所有日期字段 因为在编辑形式中它显示'YYYY-MM-DD' 我希望它显示'dd-mm-yyyy'

例如预订日期,它显示2014-04-20,我想要20-04-2014

我做了改变  配置/初始化/ 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  %>

1 个答案:

答案 0 :(得分:4)

如果表单是编辑,您可以手动添加日期值。

=@booking.booking_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?}"  %>