0

我正在尝试对没有任何验证的字段进行非常简单的更新。但是,更新总是失败。代码如下所示:

# model
class Event < ActiveRecord::Base

  attr_accessible :start_time

  ..

end

# migration
class CreateEvents < ActiveRecord::Migration
  def change
    t.datetime :start_time
  end
end

# console
Event.first.update_attribute(:start_time, "02:00")

在 Rails 日志中运行的查询甚至不包括 start_time 属性!

(0.2ms) 开始

(4.5ms) 更新eventsupdated_at= '2012-07-24 19:51:33', repeat_days= '--- \n- wed\n- sat\n- sun\n', event_date_list= '--- []\n \n'在哪里eventsid= 3763

(5.5ms) 提交

我无法理解这一点。谁能帮我理解这个问题的根本原因?

4

1 回答 1

2

您正在向它传递一个字符串,而不是日期、时间或日期时间对象。

看起来您只想存储时间,而不是附加的日期。但也许你也打算附上一个日期。如果您还想存储日期,请查找 Datetime 类。

如果您只想存储时间(小时、分钟和秒),那么我建议您将start_time字段更改为整数,并存储秒:2.hours2.hours + 4.minutes + 6.seconds.

您可以再次轻松地将其转换为时间。

于 2012-07-24T20:00:49.320 回答