2011-06-20 52 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?

這是一個微妙的差異,但似乎是一個完美的解決方案。