mysql - 试图在 MySQL 数据库中设置日期时间字段的 Ruby 错误

标签 mysql ruby-on-rails ruby datetime

我使用的是 rails 4.0.0,ruby 2.2.0 尝试在 MySQL 服务器的一个表中设置日期时间字段,我观察到以下错误。任何人都可以提出问题所在。

    2.2.0 :048 > hm.start_time = "2014-03-12 14:45:00"
    NoMethodError: undefined method `year' for nil:NilClass
    from /usr/local/rvm/gems/ruby-2.2.0/gems/activesupport-4.0.0/lib/active_support/values/time_zone.rb:287:in `parse'
    from /usr/local/rvm/gems/ruby-2.2.0/gems/activesupport-4.0.0/lib/active_support/core_ext/string/zones.rb:8:in `in_time_zone'
    from /usr/local/rvm/gems/ruby-2.2.0/gems/activerecord-4.0.0/lib/active_record/attribute_methods/time_zone_conversion.rb:37:in `start_time='
    from (irb):48
    from /usr/local/rvm/gems/ruby-2.2.0/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start'
    from /usr/local/rvm/gems/ruby-2.2.0/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start'
    from /usr/local/rvm/gems/ruby-2.2.0/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>'
    from bin/rails:34:in `require'
    from bin/rails:34:in `<main>'

最佳答案

您可以按照 MrYoshiji 的建议使用 DateTime.parse("2014-03-12 14:45:00")。为了避免时区问题,您可以在 application.rb 中指定一个设置:

config.time_zone = "Eastern Time (US & Canada)"

例如,数据库 MySQL 始终以 GMT 格式存储时间,但 Rails 将提取您指定时区的日期时间,即,它会自动转换它。希望这会有所帮助。

关于mysql - 试图在 MySQL 数据库中设置日期时间字段的 Ruby 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28197061/

相关文章:

mysql - 如何更改MySQL错误日志文件格式

php - 无法从 MySQL 获取最后插入的 ID

mysql - 仅在 INNER JOIN 中显示最高金额

ruby-on-rails - Rails Activerecord 将列添加到多个表

ruby-on-rails - 具有相同名称的 Rails 迁移

ruby - 查找一组 n 个数组中存在哪些公共(public)元素的简洁方法是什么?

Ruby 异常处理

mysql - 如何在jsp中从mysql数据库检索blob图像

ruby-on-rails - 错误的身份验证错误 Rails 连接到谷歌驱动器

ruby-on-rails - rails/Prawn : how do I use rails helpers inside a Prawn class?