【问题标题】:Rails is ignoring the time part of my datetime columnRails 忽略了我的 datetime 列的时间部分
【发布时间】:2009-01-22 16:47:41
【问题描述】:

由于某种原因,我无法为 MySQL 节省时间。我的专栏是一个日期时间,我在测试时也尝试过使用时间戳。下面是我的控制台会话:

$ ./脚本/控制台 加载开发环境(Rails 2.1.0) >> Event.find 1 # 事件 id: 1, name: "会议在 XXX", start_date: "2009-01-17" >> e.start_date = Time.now => 2009 年 1 月 22 日星期四 16:40:01 0000 >> e.保存 => 真 >> e.start_date => 2009 年 1 月 22 日星期四 16:40:01 0000 >> e.重新加载 # 事件 id: 1, name: "会议在 XXX", start_date: "2009-01-22"

时间部分在更新和查询中被忽略了。

【问题讨论】:

  • 您是否在 e.reload 之后检查 e.start_date?对 Event 的检查可能只是修剪 start_date。

标签: ruby-on-rails datetime


【解决方案1】:

原来这是由 Rails 1 或更低版本的旧代码引起的。

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!(
  :date_month => "%d %b",
  :dd_mm_yyyy => "%d/%m/%y",
  :yyyy_mm_dd  => "%Y-%m-%d"
)

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!(
    ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS
)

删除解决了问题。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题,列的日期部分没有被保存。这是因为类型是 time 而不是 datetime

    【讨论】:

      猜你喜欢
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-21
      • 2013-12-10
      • 1970-01-01
      相关资源
      最近更新 更多