使用 rails 控制台更改记录中的日期字段

Changing a date field in a record using the rails console

我的数据库中存储了一个 time 类型的对象。在 Rails 控制台中,如果我通过 ID 找到这条特定记录,我会得到以下输出:

 id: 365,
 from_hours: Sat, 01 Jan 2000 01:00:00 UTC +00:00,
 to_hours: Sat, 01 Jan 2000 12:30:00 UTC +00:00

我想将 from_hours 字段更新为 Sat, 01 Jan 2000 13:00:00 UTC +00:00

我该如何解决这个问题?

我试过使用 MyRecord.find(365).update(from_hours: Sat, 01 Jan 2000 13:00:00 UTC +00:00) 无济于事。提前致谢!

您需要在 from_hours 参数中添加引号:

MyRecord.find(365).update(from_hours: 'Sat, 01 Jan 2000 13:00:00 UTC +00:00')

使用.update!如果您需要在控制台中获得引发异常。

如果您将 from_hours: Sat, 01 Jan 2000 01:00:00 UTC +00:00 作为变量,则使用

MyRecord.find(365).update(from_hours: from_hours)

否则使用引号内的时间,例如

MyRecord.find(365).update(from_hours: 'Sat, 01 Jan 2000 13:00:00 UTC +00:00')

我建议不要直接使用 update 因为 record 也可以 return nil 所以更好用

if record = MyRecord.find(365)
  record.update(from_hours: 'Sat, 01 Jan 2000 13:00:00 UTC +00:00')
end