这应该是一个简单的,但我已经google了一下。
我正在尝试为我的rails应用程序创建数据库日志。该日志是一个postgres表,其中包含timestamp
字段,我已DEFAULT
current_timestamp
。这在原始SQL中非常有效,如果我从timestamp
查询中删除INSERT
字段,它会正确获取当前时间戳。
我有轨道;
entry = LogTable.new :fieldA => 'valA', :fieldB => 'valB'
entry.save
(LogTable扩展ActiveRecord :: Base)
这导致INSERT
查询包含所有字段,包括设置为timestamp
的{{1}}字段,数据库不允许这样做错误。
我已尝试设置NULL
和:timestamp => 'current_timestamp'
但最终都试图将其设置为:timestamp => 'DEFAULT'
。
答案 0 :(得分:1)
你的current_timestamp只是当前的日期/时间吗?如果是这样,您可以保持简单,并执行以下操作:
entry = LogTable.new :fieldA => 'valA', :fieldB => 'valB', :timestamp => Time.now
如果它更复杂并且你真的想使用数据库端默认值,那么这个页面可能有所帮助:http://drawohara.com/post/6677354/rails-activerecord-default-values。