我有这样的说法对我的模型:红宝石 - 为什么这个回调函数不起作用
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
当我打电话:
Question.create
它输出我:
#<Question id:nil, closed: false>
如果我修改这个功能:
def ensure_default_data
self.closed = 0 if self.closed.nil?
end
它的工作原理!
有人对此有任何想法,为什么第一个函数不起作用?
我使用的是PostgreSQL,而且我的字段是布尔值。
您使用的数据库是?模型中该闭合列的列定义是什么? – jaydel
这是PostgreSQL!这是迁移:'add_column:questions,:closed,:布尔值' –
你能为我澄清你认为是错误的吗?你似乎试图设置'关闭'的值为假,如果它是零,这是你第一次输出显示? –