【问题标题】:date not saved in database by using jquery datepicker rails日期未使用 jquery datepicker rails 保存在数据库中
【发布时间】:2013-11-07 00:59:00
【问题描述】:

我在我的应用程序中以表单的形式使用 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。我也检查了拼写检查的架构......一切都是正确的。可能是什么原因以及如何纠正这个问题。请帮我解决这个问题。

【问题讨论】:

  • ActiveRecord date format的可能重复
  • 伙计,检查最后期限是否在允许的参数中,如果您运行 rails4,则在控制器中,如果您有以前的 rails 版本,则在模型中 attr_accessible

标签: javascript jquery ruby-on-rails ruby datepicker


【解决方案1】:

可能是数据库的日期格式存在问题,而您是从 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' 将日期格式设置为相同。

【讨论】:

  • 你的回答有效,但你能解释一下 dateFormat 在这里保存日期在数据库中的意义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 2017-06-24
  • 1970-01-01
相关资源
最近更新 更多