Unable to set default_url_options[:host] for Action Mailer

I am attempting to provide ActionMailer with the request host needed to
generate a url.

Here is my code:

In config/environments/development.rb
config.action_mailer.default_url_options = { :host =>
"development_url.com" }

and in config/environments/production.rb
config.action_mailer.default_url_options = { :host =>
"production_url.com" }

When I run the above code ActionMailer fails, and tells me that I never
provided it with the request host. I think ActionMailer is a dirty
liar.

Any suggestions for a fix?

David Crockett wrote:

I am attempting to provide ActionMailer with the request host needed to
generate a url.

Here is my code:

In config/environments/development.rb
config.action_mailer.default_url_options = { :host =>
"development_url.com" }

and in config/environments/production.rb
config.action_mailer.default_url_options = { :host =>
"production_url.com" }

When I run the above code ActionMailer fails, and tells me that I never
provided it with the request host. I think ActionMailer is a dirty
liar.

Any suggestions for a fix?

Have you restarted your development server?

If so, try putting it inside your mailer class:

default_url_options[:host] = RAILS_ENV != production ?
           "development_url.com" : "production_url.com"

Mark Reginald James wrote:

Have you restarted your development server?

Nope - restarting the server solved the problem. Thanks for the help.

If so, try putting it inside your mailer class:

default_url_options[:host] = RAILS_ENV != production ?
           "development_url.com" : "production_url.com"

I would recommend using Ryan Bates nifty generators gem
(http://github.com/ryanb/nifty-generators). This lets you generate a
nifty_config file (actually by default called app_config.yml) which lets
you access variables which depend on production environment by doing
APP_CONFIG[:domain] or some some such madness. Definitely beats the
above method if you have to use that information in more than one place
(DRY).

Chris