From 9023f39bb90b7efd31b42fcdfc283b058d3e5389 Mon Sep 17 00:00:00 2001 From: Costa Date: Sun, 30 Mar 2014 14:24:30 +0300 Subject: [PATCH 1/2] Wrapping the mail generation in a rolled-back transaction to prevent database changes from persisting during the former --- lib/mail_view.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/mail_view.rb b/lib/mail_view.rb index b9e77bf..ac40bc1 100644 --- a/lib/mail_view.rb +++ b/lib/mail_view.rb @@ -98,7 +98,11 @@ def not_found(pass = false) end def build_mail(name) - mail = send(name) + mail = nil + ActiveRecord::Base.transaction do + mail = send(name) + raise ActiveRecord::Rollback + end Mail.inform_interceptors(mail) if defined? Mail mail end From 9d1d01cdb054cc1c8a988c07a79c189861902a8b Mon Sep 17 00:00:00 2001 From: Costa Shapiro Date: Thu, 2 Oct 2014 19:33:34 +0300 Subject: [PATCH 2/2] https://github.com/basecamp/mail_view/pull/71#discussion_r17883023 --- lib/mail_view.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/mail_view.rb b/lib/mail_view.rb index ac40bc1..9ba96fd 100644 --- a/lib/mail_view.rb +++ b/lib/mail_view.rb @@ -100,10 +100,12 @@ def not_found(pass = false) def build_mail(name) mail = nil ActiveRecord::Base.transaction do + mail = send(name) + Mail.inform_interceptors(mail) if defined? Mail + raise ActiveRecord::Rollback end - Mail.inform_interceptors(mail) if defined? Mail mail end