web-dev-qa-db-fra.com

image_tag dans mailer n'utilisant pas asset_host

image_tag n'utilise pas l'élément asset_Host que j'ai défini. Des idées pourquoi? La seule chose à laquelle je peux penser, c'est qu'il s'agit d'un 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;" %>

rendu comme:

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

Dans la console:

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

J'ai besoin de l'image_tag pour créer une URL de chemin complet car elle apparaîtra dans un e-mail.

54
RyanJM

Nous devons spécifier à la fois config.action_controller.asset_Host et config.action_mailer.asset_Host, sur Rails 3.1 et 3.2.

Pour ajouter le nom d'hôte à l'image_tag sur les vues par courrier électronique et non électronique, ajoutez ce qui suit à votre fichier d'environnement:

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

Où 'http: // localhost: 3000' doit être remplacé par l'URL de votre hôte (et le port le cas échéant).

Cela doit être défini sur action_controller et action_mailer, même dans Rails 3.2.x.

22
Tiago Franco