2011-06-20 91 views
23

我想在rails应用程序中做一个before_save有条件的,但它似乎并没有工作。有没有办法使before_save有条件?

before_save method_call_to_run if self.related_model.some_method_that_returns_t_or_f? 

如果“some_method_that_returns_t_or_f”返回true,我希望它运行的方法将其保存对象之前,否则我只是希望它忽略before_save。

回答

2

在Rails 5中,我已经成功地定义了一个包含布尔逻辑的私有方法,然后将它作为一个符号传递(最后一部分看起来像是一个要求)。换句话说:

before_save do_something, if: :private_boolean_method?

这是一个微妙的差异,但似乎是一个完美的解决方案。

相关问题