在before_create中设置布尔字段会停止创建吗?

时间:2012-08-26 00:38:14

标签: ruby-on-rails ruby-on-rails-3

所以这可能是个错误。

在我的模型中,在我的orders表格中,我有一个名为active的字段。它是一个布尔值,默认为true。在订单before_create中,我正在做一些逻辑,如果发生XYZ,会将active设置为false。

当XYZ发生时,它似乎会阻止记录一起保存(不会给我任何真正的错误),而不仅仅是将字段设置为false。

有什么想法吗?

2 个答案:

答案 0 :(得分:10)

如果您在active = false过滤器的末尾设置before_create,则过滤器将返回false并停止过滤器执行链,导致保存未完成。

如果您的代码中出现这种情况,只需在true的末尾返回before_create即可。您应该没问题。

答案 1 :(得分:0)

我有同样的问题,我必须在每个before_create回调结束时插入1 == 1或true。在回调定义中看起来很奇怪。