我的模型中有一个after_save回调:
after_save :do_stuff
但是我希望Rails在我的模型的创建动作上忽略它,比如
after_save :do_stuff, skip: on_create
这样做的好方法是什么?
答案 0 :(得分:1)
您可以使用after_update
回调。正如documentation所说:
在具有记录的现有对象的Base.save之后调用。
答案 1 :(得分:1)
您可以使用except
试试这些:
after_save :do_stuff, except: :create
或者
use after_update
答案 2 :(得分:0)
在这种情况下 - 请勿使用after_save
回调。
after_save
的目的是在每次保存对象时运行,因此在创建对象时会调用它( - >因为它是第一次保存)并且当对象被保存时更新。
正如@JesusTinoco回答的那样,你应该使用after_update
回调,只有当你更新对象时才会调用它。
after_update :do_stuff
(PS:还有after_create
回调,只有在创建对象时才会调用它。)