actionmailer_host_autoset

It is difficult to generate URLs with ActionMailer. Although you can generate absolute paths from your routes, you usually need to generate full URLs for the links in the email to be useful to your recipients.

This plugin sets the default_url_options for host, port and protocol by providing an around_filter which will grab the values from the request object. In the cases when the request object is not available, for example, when running tests, default values are set instead.

This is basically a repackaging of retardase_inhibitor (github.com/luke0x/retardase_inhibitor), with more descriptive name and a gemspec that will actually build on github (yay for jeweler!).

Installation

# setup gemcutter, if you haven't already:
gem install gemcutter
gem tumble

gem install actioncontroller_host_autoset

Or, in environment.rb:

config.gem 'actionmailer_host_autoset', :source => 'http://gems.gemcutter.org'

Then:

rake gems:install

Usage

Add the around_filter to the ApplicationController to set the default_url_options for every request.

class ApplicationController < ActionController::Base
  around_filter :actionmailer_host_autoset
end

I prefer to add it just around the actions when I know an Observer will kick off an ActionMailer notifier. For example, I have an the filter kick off in my SessionsController#create when I process a user signup.

class SessionsController < ActionController::Base
  around_filter :actionmailer_host_autoset, :only => :create
  def create
    ...
  end
end

Copyright © 2007 Nick Kallen, 2009 Tobias Crawley. See LICENSE for details.