Correct location for ActionMailer interceptor


#1

I read the Rails documentation for creating an email interceptor. It
mentions putting the registration in config/initializers, However,
there’s
no mention about where I should store the interceptor itself. What is
the
best practice for this?


#2

To get started:

For Rails 3,

Railscasts: #206 Action Mailer in Rails 3

At Github, Rails ActionMailer, the interceptor test file is pretty
interesting, around line 642

https://github.com/rails/rails/blob/3e36db4406beea32772b1db1e9a16cc1e8aea14c/actionmailer/test/base_test.rb.


#3

Thank you Elizabeth. I’m new to Rails so poking around in the Rails
source
is insightful.

Usually the test case is a good guide for how to use a piece of code.
The
interceptor is declared right inside the test case. The documentation
and
the test seem to imply that I should declare the interceptor and the
registration in the same file and place it inside the initializers
folder.

I’m implementing an email interceptor that redirects outbound email to a
testing email account during development, so I added an interceptors
folder
under config and put the registration in development.rb. This seems a
sensible place for interceptors to live. It also registers the
interceptor
only under the right circumstance.

Feedback about this is appreciated,