我正在尝试对没有任何验证的字段进行非常简单的更新。但是,更新始终失败。这是代码的样子:
# 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)BEGIN
(4.5ms)UPDATE
events
SETupdated_at
= '2012-07-24 19:51:33',repeat_days
='--- \ n- wed \ n- sat \ n- sun \ n',event_date_list
='--- [] \ n \ n'在哪里events
。id
= 3763(5.5ms)COMMIT
我无法理解这一点。任何人都可以帮我理解这个问题的根本原因吗?
答案 0 :(得分:2)
您传递的是字符串,而不是日期,时间或日期时间对象。
看起来您只想存储时间,而不是附加日期。但也许你打算附上一个约会。如果您还想存储日期,请查看Datetime类。
如果您只想存储时间(小时,分钟和秒),我建议您将start_time
字段更改为整数,并存储秒数:2.hours
或{ {1}}。
您可以轻松地将其转换为时间。