Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

image_tag in mailer not using asset_host

image_tag isn't using the asset_host I've set. Any ideas why? The only thing I can think of is it having to do with it being a Mailer.

config/environment/development.rb

config.action_controller.asset_host = "http://localhost:3000"

myMailer.rb

<%= image_tag "logo.png", :style=>"margin-left:10px; padding-bottom:15px;" %>

rendered as:

<img alt="Logo" src="/images/logo.png?1303090162" style="margin-left:10px; padding-bottom:15px;" />

In console:

> MyApp::Application.config.action_controller
#<OrderedHash {… :asset_host=>"http://localhost:3000", …}>

I need the image_tag to create a full path url because it will be showing up in an email.

like image 611
RyanJM Avatar asked Apr 21 '11 05:04

RyanJM


2 Answers

I was wrong before. This is the solution you need (until rails 3.1 where the asset_host configurations become unified):

config.action_mailer.asset_host = "http://localhost:3000"
like image 188
Patrick Robertson Avatar answered Nov 16 '22 13:11

Patrick Robertson


We need to specify both config.action_controller.asset_host and config.action_mailer.asset_host, on Rails 3.1 and 3.2.

To add the hostname to the image_tag on both e-mail and non-email views, add the following to your environment file:

config.action_controller.asset_host = 'http://localhost:3000'
config.action_mailer.asset_host = config.action_controller.asset_host

Where 'http://localhost:3000' should be replaced by your host URL (and port if applicable).

This needs to be set on both action_controller and action_mailer, even in Rails 3.2.x.

like image 22
Tiago Franco Avatar answered Nov 16 '22 13:11

Tiago Franco