Rails

ActionMailer::Prevew を利用してプレビューする際に、途中で作ったDB内の情報をロールバックする

https://blog.bearandgiraffe.com/rails-email-previews-e2c7b79839a0
上記のようなPreview内でロールバックする実装でいけるのかと思ったのですが、自分の手元ではどうもロールバックできなかったです。

多分これでいいんじゃないかなーと思うんだけど、やったことを残しておくために一応エントリ作っておく。もしも上手く動かなかったら教えてください。手元ではいい感じに思っています。下記のクラスを基底にすればいけると思う。

class BasePreview < ActionMailer::Preview
  # メールのプレビューを作る際に作ったDB内の情報はロールバックする
  def self.call(email)
    ret = nil
    ActiveRecord::Base.transaction do
      ret = super
      raise ActiveRecord::Rollback
    end
    ret
  end
end