我需要在保存日期前添加另一年更新模型中的所有记录,查找信息并选择 update_all ,我真的会帮助一个日期 update_all <的示例/ strong>数据库:PostgreSQL
一个例子: 保存的日期是执行01/15/17行动后的15/01/16等所有记录。
或其他一些选项会非常有用!
答案 0 :(得分:1)
如果您使用PostgreSQL
数据库,则可以使用datetime
函数中的interval
:
$ rails console
=> User.last
=#<User:0x00563c0ed6e0c0
id: 7,
name: "foo",
email: "foo@test.ru",
created_at: Tue, 15 Mar 2016 19:54:52 MSK +03:00,
^^^^
.......
=> User.update_all("created_at = created_at + '1 year'::interval")
=> #<User:0x00563c0c9e4f78
id: 7,
name: "foo",
email: "foo@test.ru",
created_at: Wed, 15 Mar 2017 19:54:52 MSK +03:00,
^^^^
........
如果MySQL
数据库可以使用DATE_ADD
功能。
如果列具有正确的类型,则所有这些都应该有效。