我已经阅读了http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html上的文档,但是不知道何时around_*
触发了关于before_*
和的回调after_*
.
任何帮助非常感谢.
谢谢.
如您所知,before_save
回调在before_create
回调之前执行.
因此,有些人建议使用in before_save :method, :on => :create
而不是before_create
使得回调方法在适当的时间执行与其他回调(例如自动保存回调)相关.例如,请参阅此Pivotal Labs博客文章以及此StackOverflow答案.
但是,据我所知,该:on => :create
选项无法实现对before_save
回调的预期效果.换句话说,无论是否为创建,都会为每次保存执行回调.
该:on => :create
选项也似乎是有效的before_validation
回调,虽然.
有人可以确认是否:on => :create
应该适用于before_save
?它是否在以前的Rails版本中有效并且现在已经坏了,或者前面提到的链接是错误的?
假设:on => :create
无效,以下是否可接受,和/或有更好的方法吗?
before_save :callback_method, :if => :new_record?
Run Code Online (Sandbox Code Playgroud)
谢谢.