【问题标题】:Rails Date Format in edit view编辑视图中的 Rails 日期格式
【发布时间】:2014-04-23 14:27:28
【问题描述】:

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

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

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

我确实改变了 配置/初始化程序/date_formats.rb 日期::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  %>

【问题讨论】:

  • 嗨,如果当你把 @booking.booking_date 像 Rails 一样放置时,'show' 工作正常,但你提到'edit' 仍然以错误的格式显示日期,这可能可能与 jQuery 有关,如果是这样,这可能会有所帮助:api.jqueryui.com/datepicker/#option-dateFormat
  • 谢谢,我确实删除了 datepicker 类并刷新了页面,但我仍然得到相同的结果
  • 删除类不会解决问题,而是尝试将格式添加到 javascript 代码中的日期选择器中,如下所示: datepicker({ dateFormat: "dd-mm-yyyy" })
  • 谢谢,是的,我以前做过,如果我在从 jquery-ui 中选择日期后单击字段,它将显示 dd-mm-yyyy 但在我单击显示yyyy-的字段之前mm-dd
  • 这个link对你有帮助

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


【解决方案1】:

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

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

【讨论】:

  • 谢谢您,我正在使用您的解决方案并稍作修正:value=>"#{f.object.booking_date.strftime("%d-%m-%Y") 除非 f. object.new_record?}”
猜你喜欢
  • 2015-08-05
  • 2015-09-11
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 2013-03-21
  • 2016-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多