我正在使用jQuery Datepicker gem,当我正在编辑一个有日期的记录时,它会出现意外行为.
当我创建新记录时,以mm / dd / yy格式输入日期.当我去编辑记录时,日期字段正在YYYY-DD-mm格式的日期字段中填充,我不明白为什么.也许这与Rails本身有关?
表中的Date列设置为Date,我认为这很好.在控制器中显示日期或某些内容时,我的视图中是否需要执行某些操作?
$(document).on('page:change',function () { $('#cust_dob').datepicker({ changeMonth: true,changeYear: true,dateFormat: "mm/dd/yy",yearRange: "1900:+0" }); });
任何帮助将非常感激.
解决方法
好的,我能够让这个工作.有两个问题.
首先,由于格式不同,日期并不总是保存到数据库表中.所以,我使用了隐藏字段并使用了数据贴纸的altFormat和altField选项.第二个问题是在编辑记录时格式化当前日期.这是使用strftime建议的DevDue实现的.所以,对于那些感兴趣的人,我认为是我的.不是说这是最好的方式,因为我还在学习RoR,但它有效:)
首先,由于格式不同,日期并不总是保存到数据库表中.所以,我使用了隐藏字段并使用了数据贴纸的altFormat和altField选项.第二个问题是在编辑记录时格式化当前日期.这是使用strftime建议的DevDue实现的.所以,对于那些感兴趣的人,我认为是我的.不是说这是最好的方式,因为我还在学习RoR,但它有效:)
所以,我对日期的部分看法:
<div class="span2 input"> <% dob_display = :dob %> <%= f.text_field dob_display,placeholder: "mm/dd/yyyy",required: true,id: "cust_dob",value: @customer.dob.try(:strftime,"%m/%d/%Y") %> <%= f.hidden_field :dob,id: "cust_dobalt" %> </div>
我花了一段时间才意识到,除非hidden_field位于visble字段之后,否则它不起作用!
我的datepicker的application.js文件如下所示.注意altField和altFormat:
$(document).on('page:change',function () { $('#cust_dob').datepicker({ changeMonth: true,yearRange: "1900:+0",altField: "#cust_dobalt",altFormat: "yy-mm-dd",duration: "slow" }); });