如您所知,before_save
回调在回调之前执行before_create
。
因此,有人建议最好使用 inbefore_save :method, :on => :create
而不是before_create
这样,回调方法相对于其他回调(例如自动保存回调)在正确的时间执行。例如,请参阅此Pivotal Labs 博客文章和此 StackOverflow 答案。
但是,据我所知,该选项对回调:on => :create
没有达到预期的效果。before_save
换句话说,无论是否创建,每次保存都会执行回调。
不过,该:on => :create
选项似乎对before_validation
回调有效。
有人可以确认是否:on => :create
应该为 a 工作before_save
?它是否在以前的 Rails 版本中工作并且现在已损坏,或者上述链接只是错误的?
假设:on => :create
无效,以下是否可以接受,和/或有更好的方法吗?
before_save :callback_method, :if => :new_record?
谢谢你。