我在我的模型上有这样的陈述:
class Question
validates :closed, :inclusion => { :in => [false, true] }
before_validation :ensure_default_data
def ensure_default_data
self.closed = false if self.closed.nil?
end
end
Run Code Online (Sandbox Code Playgroud)
我打电话的时候:
Question.create
Run Code Online (Sandbox Code Playgroud)
它输出我:
#<Question id:nil, closed: false>
Run Code Online (Sandbox Code Playgroud)
如果我将函数修改为:
def ensure_default_data
self.closed = 0 if self.closed.nil?
end
Run Code Online (Sandbox Code Playgroud)
有用!
有人对它有任何想法,为什么第一个功能不起作用?
我正在使用PostgreSQL,我的字段是布尔值.