我在我的应用程序中使用jquery ui datepicker表单。当我在表格中保存日期字段时显示为nil。
我已经安装了“jquery-ui-rails”gem并在application.js和application.css中给出了jquery ui.all
我的代码如下所示
<div>
<%= f.label :deadline %>
<%= f.text_field :deadline, :id => "datepicker" %>
</div>
在application.js
中 $(function() {
$( "#datepicker" ).datepicker({
minDate: 0
});
});
提交表格
Parameters: {"utf8"=>"✓","authenticity_token"=>"aoiDOLAGZHKui85hum7ozJ31QNZopOvmImyOuDyXCw4=", "task"=>{"task"=>"task1", "assigned_to_id"=>"2", "deadline"=>"10/30/2013", "project"=>"", "workspace_id"=>"4"}, "commit"=>"Create", "id"=>"4"}
插入:
INSERT INTO "tasks" ("assigned_to_id", "created_at", "project", "task", "updated_at", "user_id", "workspace_id") VALUES (?, ?, ?, ?, ?, ?, ?) [["assigned_to_id", 2], ["created_at", Mon, 28 Oct 2013 09:51:22 UTC +00:00], ["project", ""], ["task", "task1"], ["updated_at", Mon, 28 Oct 2013 09:51:22 UTC +00:00], ["user_id", 1], ["workspace_id", 4]]
这里没有截止日期字段。它显示为nil.I已经检查了拼写检查的模式......一切都是正确的。可能是什么原因以及如何纠正这个问题。请帮我解决这个问题。
答案 0 :(得分:3)
可能是db的日期格式问题,您从datepicker
输入更改datepicker中的日期格式。像
$(function() {
$( "#datepicker" ).datepicker({
minDate: 0
dateFormat: 'dd-mm-YYYY'
});
});
或者您可以更改控制器中的日期格式。
日期的默认格式是date-month-year。
修改强>
在许多数据库中,默认数据格式为 dd-mm-yyyy
因此,我们需要使用相同的数据格式从日期选择器中提供日期格式。
但是在jquery ui datepicker中,dafault数据格式是dd/mm/yyyy
,这不是db的可接受格式。因此该值不会保存在db中。
我们是否需要提供日期字段的日期格式为 dd-mm-yyyy
在jquery datepicker中, dateFormat:'dd-mm-yyyy'将日期格式设置为相同。