我的模型有一个回调函数,如果一个布尔值设置为true,回调会将它设置为false,如下所示:
after_create :set_boolean
def set_boolean
if self.status == true
self.name = "XYZ"
self.status = !self.status
self.save
end
end
使用上面的回调,我可以将name
的值更新为XYZ
,但状态变量的值仍设置为true。我猜,回调显然有效,但无法弄清楚问题出在哪里。
有什么建议吗?
答案 0 :(得分:1)
创建后,您可以在model
中指定一项功能,将属性值设置为false
,如下所示
在模型中
after_create :set_status
def set_status
self.status = false
end
答案 1 :(得分:-3)
我认为您需要在!
运算符之前将赋值包装到括号中。
self.status = !(self.status)