Ruby on Rails:updated_at - 在创建时设置为0

krn*_*krn 2 activerecord ruby-on-rails

当我在query表上创建一个新记录时,我希望updated_at(timestamp)为'0000-00-00 00:00:00' - 而不是当前时间戳,因为Ruby on Rails默认设置.

MySQL字段:

`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP
Run Code Online (Sandbox Code Playgroud)

但是,Ruby on Rails生成了这个SQL查询:

INSERT INTO `queries` (`updated_at`) VALUES ('2011-01-04 17:40:15')
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

hor*_*irs 8

Rails设置updated_at为当前时间,因为,当记录最近更新时.它将更新视为创建.如果您要检查,如果事情曾经被更新,检查,看看它updated_atcreated_at是相同的.

否则,您应该能够通过在插入时强制属性来更改插入的值.

Post.new(@params.merge({:updated_at => DateTime::new})

或者,在before_create模型的方法中,设置self.updated_at = DateTime::new.