如何在before_save回调中使用if符号?

时间:2017-07-23 18:00:47

标签: ruby-on-rails ruby

class Order < ApplicationRecord
  before_save :normalize_card_number, if: :paid_with_card?
end

上述代码是否意味着在保存对象之前,只有在调用了paid_with_card方法时才调用normalize_card_number?

1 个答案:

答案 0 :(得分:4)

没有。这实际上意味着仅当normalize_card_number方法返回true时才会调用paid_with_card?方法。

为了快速参考,有一个很好的指南:

http://guides.rubyonrails.org/active_record_callbacks.html#conditional-callbacks