2

我的模型上有一个回调,因此如果布尔值设置为 true,回调会将其设置为 false,如下所示:

after_create :set_boolean

def set_boolean
  if self.status == true
    self.name = "XYZ"
    self.status = !self.status
    self.save
  end
end

使用上面的回调,我可以更新 to 的值nameXYZ但状态变量的值仍设置为 true。我想,回调显然是有效的,但无法弄清楚问题出在哪里。

有什么建议么?

4

2 回答 2

1

创建后,您可以指定一个函数model,将属性值设置为false如下所示

在模型中

after_create :set_status

def set_status
  self.status = false
end
于 2015-11-17T07:05:43.107 回答
-3

我认为您需要在运算符之前将赋值包装到括号中!

self.status = !(self.status)
于 2013-10-12T20:14:53.123 回答