在我的一个应用程序中,有两种模型:Comment和User例如,我希望能够在Comment更新时调用User中的方法;例如send_email。为什么不直接用Comment写send_email呢?因为那样我就和封装相矛盾了。我的问题是,在另一个模型上调用回调方法的正确方法是什么?
Comment
User
send_email
after_update :user.send_email
a64a0gku1#
after_update采用方法的名称。在您的示例中,:user.send_email不是有效的方法名称。一种方法是创建一个在用户对象上调用send_email的方法,然后将其注册为回调。有关Active Record Callbacks的完整文档,请参见Rails指南。
after_update
:user.send_email
after_update :send_email def send_email user.send_email end
k75qkfdt2#
是的,你是对的,after_update可以用于回调。
#comment.rb after_update :send_email_to_user private def send_email_to_user user.send_email end #user.rb def send_email end
2条答案
按热度按时间a64a0gku1#
after_update
采用方法的名称。在您的示例中,:user.send_email
不是有效的方法名称。一种方法是创建一个在用户对象上调用send_email
的方法,然后将其注册为回调。有关Active Record Callbacks的完整文档,请参见Rails指南。k75qkfdt2#
是的,你是对的,after_update可以用于回调。