小编Est*_*has的帖子

Ruby - 为什么这个回调函数不起作用

我在我的模型上有这样的陈述:

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,我的字段是布尔值.

ruby ruby-on-rails callback

1
推荐指数
1
解决办法
198
查看次数

标签 统计

callback ×1

ruby ×1

ruby-on-rails ×1