使用ActiveRecord和MySQL插入DATETIME
作者:互联网
我在ActiveRecord中按照文档插入DATETIME时遇到问题; “如果表具有名为created_at / created_on或updated_at / updated_on的字段,则Active Record会自动为创建和更新操作添加时间戳.”我有一个名为created_at的列,但ActiveRecord没有插入DATETIME.我的插入查询如下所示:
def add_record(server_id, backup_type)
Record.create(:server_id => server_id, :backup_type => backup_type)
end
我知道我可以使用类似的方式插入时间
:created_at => "#{Time.now.strftime("%Y-%m-%d %H:%M:%S")}"
我之所以要远离它,是由于本地和地理位置的服务器之间的时间差异.我想知道是否有一种方法可以在相同的create方法中运行类型,例如:
def add_record(server_id, backup_type)
Record.create(:server_id => server_id, :backup_type => backup_type, created_at => DATETIME())
end
谢谢.
解决方法:
您有created_at列,但是ActiveRecord没有创建时间戳吗?您created_at列的列类型是什么?也许您可以向我们展示您的迁移?
另外,如果您告诉Rails使用UTC(我认为是2.2的默认设置),则时间值将是正确的,而不管服务器的区域设置如何.
最后,您可以传递时间/日期/日期时间实例,而不必自己格式化.例如. YourModel.create(:a_time_column => Time.now)
标签:activerecord,ruby,datetime,mysql 来源: https://codeday.me/bug/20191108/2004541.html