2

我在我的应用程序中以表单的形式使用 jquery ui datepicker。当我保存表单时,日期字段显示为 nil。

我已经安装了“jquery-ui-rails”gem,并在 application.js 和 application.css 中给出了 require 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。我也检查了拼写检查的架构......一切都是正确的。可能是什么原因以及如何纠正这个问题。请帮我解决这个问题。

4

1 回答 1

4

可能是数据库的日期格式问题,您从 datepicker 输入

在 datepicker 中更改日期格式。像

$(function() {
$( "#datepicker" ).datepicker({
    minDate: 0
    dateFormat: 'dd-mm-YYYY'
 });
});

或者您可以更改控制器中的日期格式。

日期的默认格式是日期-月-年。

编辑:

在许多数据库中,默认数据格式是dd-mm-yyyy

所以我们需要从我们的日期选择器中提供具有相同数据格式的日期格式。

但是在 jquery ui datepicker 中,默认数据格式dd/mm/yyyy不是 db 可接受的格式。因此该值不会保存在 db 中。

我们是否需要提供日期字段的日期格式为dd-mm-yyyy

在 jquery datepicker 中dateFormat: 'dd-mm-yyyy'将日期格式设置为相同。

于 2013-10-28T09:58:35.307 回答