ActiveRecord Timedate列全部更新为NULL

时间:2016-01-15 01:52:14

标签: ruby-on-rails activerecord

您好我正在尝试将timedate列更新为NULL,但我无法使其工作。请帮忙。

我试过了:

User.where(interviewed: false).where("interview_date < ?", Time.now).update_all(interview_date: NULL)

我明白了:

NameError: uninitialized constant NULL

我试过了:

User.where(interviewed: false).where("interview_date < ?", Time.now).update_all(interview_date: null)

我明白了:

NameError: undefined local variable or method `null' for main:Object

我试过了:

User.where(interviewed: false).where("interview_date < ?", Time.now).update_all(interview_date: "")

我明白了:

PG::InvalidDatetimeFormat: ERROR:  invalid input syntax for type timestamp: ""

1 个答案:

答案 0 :(得分:4)

Ruby中没有NULL类型。只有nil

你必须这样做:

User.where(interviewed: false).where("interview_date < ?", Time.now).update_all(interview_date: nil)

ActiveRecord会自动将ruby的nil转换为sql null。