这看起来像是一个猴子补丁。我该如何改进呢?
尝试从ActionMailer :: MessageDelivery类重写deliver_now
实例方法。以下代码有效。
但是,有没有办法通过类继承或其他方式更优雅地说明这一点?结束代码用于自定义ActionMailer邮件程序。
module MyModule
class Ses
ActionMailer::MessageDelivery.class_eval do
def deliver_now!
puts self.to
puts self.subject
end
end
...
end
end
答案 0 :(得分:3)
您可以查看Ruby的refinements
示例改进:
module MyMessageRefinement
refine(ActionMailer::MessageDelivery) do
def deliver_now!
puts self.to
puts self.subject
end
end
end
然后在你的课堂上:
module MyModule
class Ses
using MyMessageRefinement
end
end