【发布时间】:2011-11-12 08:11:37
【问题描述】:
我的 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"
})
到目前为止一切顺利。我可以编辑记录,并将日期正确地保存到数据库。我的问题是当我想再次编辑记录时。当表单从记录中预填充时,它以“yyyy-mm-dd”格式显示。 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
我在environment.rb中添加了以下内容:
Date::DATE_FORMATS.merge!(
:default => "%d %B %Y"
)
现在,当我在视图中使用 @show.date 时,它会显示正确的格式,但表单助手仍在显示原始格式。
【问题讨论】:
标签: jquery jquery-ui ruby-on-rails-3.1