2010-11-17 6 views
0

J'ai construit une application locale et tous les expéditeurs ont utilisé l'URL 0.0.0.0:3000 qui est ce que je voulais ...rails - URL ActionMailer pour dev contre prod

Maintenant, je viens poussé à Heroku, et les URL n'ont pas été mises à jour vers l'URL de l'expéditeur du produit. Ai-je configuré cela correctement?

/config/environments/production.rb

config.action_mailer.default_url_options = { :host => 'mynewapp.heroku.com' } 

/config/initializers/setup_mail.rb

ActionMailer::Base.smtp_settings = { 
    :address    => "smtp.sendgrid.net", 
    :port     => "25", 
    :authentication  => "plain", 
    :domain    => "xxxxxxx.com", 
    :user_name   => "[email protected]", 
    :password    => "xxxxxxxxxxxxx" 
} 

# The to field is then changed so that the email is sent to 
ActionMailer::Base.default_url_options[:host] = "0.0.0.0:3000" 
Mail.register_interceptor(DevelopmentMailInterceptor) if Rails.env.development? 

encore toutes les URL sont encore 0.0.0.0:3000 est-il un paramètre I besoin de définir quand je pousse à heroku à préciser que les rails est en mode de production? Ou ai-je gâcher quelque chose au-dessus?

Merci

Répondre

1

Mettez cette ligne:

ActionMailer::Base.default_url_options[:host] = "0.0.0.0:3000" 

dans config/environnements/development.rb, et aussi dans config/environnements/production.rb, mais le modifier dans ce dernier être l'URL appropriée. En le mettant dans un initialiseur, vous le configurez pour tous les environnements, ce qui est incorrect.

0

Ajouter cette ligne à votre Gemfile:

gem "action_mailer_auto_url_options" 

et les URL seront mises en correspondance correctement automatiquement.

Questions connexes