Bac*_*cko 12 ruby ruby-on-rails callback ruby-on-rails-3 ruby-on-rails-3.1
我正在使用Rails 3.1.0,我想知道是否可以"同等" 地处理after_save
和after_destroy
回调.也就是说,我需要为两者after_save
和after_destroy
回调运行相同的方法.
此时我必须单独处理这些回调,即使这些回调完成了同样的事情:
after_save do |record|
# Make a thing
end
after_destroy do |record|
# Make the same thing as in the 'after_save' callback
end
Run Code Online (Sandbox Code Playgroud)
那么,有一种方法可以处理after_save
和after_destroy
"平等"吗?
Vap*_*ire 29
而不是块给出after_save
和after_destroy
模型的方法名称作为符号.
class ModelName < AR
after_save :same_callback_method
after_destroy :same_callback_method
def same_callback_method
# do the same for both callbacks
end
end
Run Code Online (Sandbox Code Playgroud)
要在保存和销毁后执行相同的回调,您可以使用 after_commit
after_commit do |record|
# Is called after creating, updating, and destroying.
end
Run Code Online (Sandbox Code Playgroud)
http://apidock.com/rails/ActiveRecord/Transactions/ClassMethods/after_commit
class Foo < ActiveRecord::Base
after_save :my_callback
after_destroy :my_callback
private
def my_callback
#Do stuff
end
end
Run Code Online (Sandbox Code Playgroud)