Nis*_*nio 6 activerecord ruby-on-rails date
我需要更新一个字段(称为updated_at).MySQL中的字段是类型datetime,类是ActiveSupport::TimeWithZone.但日期字符串喜欢"10/17/2008".我使用"10/17/2008".to_date(而且我打算.to_time和.to_datetime),即使在控制台中ActiveRecord类成功保存,数据库中的字段仍然是当前日期.
好吧..让我们当时拿一个.
首先,不建议设置字段名称updated_at,因为这是一个由Rails自动填充的"魔术"字段.
如果要禁用此功能,您可以:
class Foo < ActiveRecord::Base
self.record_timestamps = false
end
Run Code Online (Sandbox Code Playgroud)
在你的班级,但这也将禁用created_at字段.
最好的选择是my_updated_at在数据库中添加一个新字段(例如)作为日期,然后Rails将自动处理转换,这意味着下一个代码片段将起作用:
Foo.new({:my_updated_at => "10/17/2008"})
Run Code Online (Sandbox Code Playgroud)
其次,如何解析字符串的答案ActiveSupport::TimeWithZone是:
ActiveSupport::TimeZone['UTC'].parse("10/17/2008")
Run Code Online (Sandbox Code Playgroud)
但我不认为这会对你有帮助(当然,改变UTC你当前的日期/时间).