2009-06-17 4 views
4

J'ai une application qui est dans quelques environnements ie (développement, mise en scène, bêta, live)Quel est le meilleur moyen de transmettre le nom de domaine de votre serveur rails pour l'envoi?

Quelle est la meilleure façon de passer dans le nom de domaine d'une application lors de l'envoi de courrier, pour permettre différents noms de domaine en fonction sur le serveur?

Ma première pensée est d'ajouter quelque chose dans les fichiers environment.rb respectifs pour chacun, donc config/environments/beta.rb contiendrait

ActionMailer::Base.smtp_settings[:domain] = 'beta.domain.com' 

Et config/environments/staging.rb contiendrait

ActionMailer::Base.smtp_settings[:domain] = 'staging.domain.com' 

Cela se sent comme je suis faire quelque chose de si basique que Rails aurait déjà cette valeur qui traîne, mais je ne l'ai pas trouvé dans aucun des endroits où je m'attendais normalement, ni je peux le trouver dans la documentation.

Quelle est la meilleure approche à prendre ici?

Répondre

4

Je passe simplement la valeur de request.host à la méthode ActionMailer.

1

Dans vos fichiers d'environnement, vous souhaitez définir:

ActionMailer::Base.default_url_options = { :host => "beta.domain.com" } 

Si vous utilisez url_for au lieu de routes nommées, vous devez également préciser: only_path => false ... pour ne pas obtenir des URLs relatifs. J'essaie généralement d'utiliser des routes nommées, cependant.

+0

Merci, il semble que c'est juste ce dont j'avais besoin. Acclamations Callmeed! –

Questions connexes