Estoy tratando de empujar mi aplicación en heroku. Todavía estoy en desarrollo. Yo uso idear con el módulo confirmable.
Cuando intento agregar un usuario con la consola heroku, aparece este error:
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
en entorno de prueba y desarrollo tengo la siguiente línea:
ambientes / development.rb y ambientes / test.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
No he configurado algo en el entorno de producción.
He tratado de empujar con
config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }
pero tampoco funciona ...
Veo en la web que podría estar relacionado con ActionMailer, pero no sé qué tengo que configurar. Muchas gracias por tu idea!
EDITADO:
Hola,
Para no hacer que mi aplicación se bloquee cuando presiono heroku, puse esto en mi env / test.rb y mi env / dev.rb (no en env.rb, creo que es porque es una aplicación rails 3)
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
Pero cuando intenté crear un usuario en la consola heroku:
User.create(:username => "test", :email => "[email protected]", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")
Aquí hay errores que obtuve:
ActionView::Template::Error: Missing host to link to! Please provide :host parameter or set default_url_options[:host]
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:473:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/url_for.rb:132:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_view/helpers/url_helper.rb:99:in `url_for'
/home/slugs/.../mnt/.bundle/gems/ruby/1.8/gems/actionpack-3.0.0/lib/action_dispatch/routing/route_set.rb:195:in `user_confirmation_url'
EDITADO (2)
Cuando escribo los registros de heroku en la consola, obtengo esto ==> production.log <== Así que creo que cuando uno se implementa en heroku ya está en producción.
Configuro el env / prod.rb así:
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
y ahora tengo esto como error cuando intento crear un usuario:
Errno::EAFNOSUPPORT: Address family not supported by protocol - socket(2)
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `initialize'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `open'
/usr/ruby1.8.7/lib/ruby/1.8/net/smtp.rb:551:in `do_start'
/usr/ruby1.8.7/lib/ruby/1.8/timeout.rb:62:in `timeout'
fuente
:host => 'yourapp.heroku.com'
Este debería ser tu dominio. Por ejemplo, si su dominio es yahoo.com, entonces debería serloyahoo.heroku.com
o si ya configuró dominios personalizados, solo será su URLyahoo.com
config.action_mailer.default_url_options = { :host => 'yourapp.herokuapp.com'
, en lugar de justoconfig.action_mailer.default_url_options = { :host => 'yourapp.heroku.com'
?Okay,
Primero debe instalar la gema sendgrid con esta línea de comando:
Entonces solo tiene que configurar su env / dev.rb y env / prod.rb de esta manera:
env / dev.rb
env / prod.rb
Empuja git y heroku. Deberia de funcionar..
fuente
method_missing': undefined method
action_mailer 'para # <Rails:: Aplicación :: Configuración: 0x0000000241f760> (NoMethodError)La respuesta de Codeglot arriba hace el trabajo, pero queríamos algo un poco más flexible, así que hicimos esto:
En Heroku, ejecutamos múltiples entornos de producción para etapas y pruebas, por lo que necesitamos una solución flexible para el archivo de entorno production.rb.
En production.rb
Luego establezca la variable de entorno MAILER_URL para su aplicación de esta manera
fuente
Si estás corriendo en Cedar :
corre
heroku addons:add sendgrid:free
desde tu consola.Agregue las siguientes líneas a
config/environments/production.rb
en su aplicación..
fuente
Tuve que hacer varias cosas para que funcionara en el entorno de producción : dentro de mi
production.rb
archivo (/config/environments/production.rb) agregué lo siguiente:Esto es con Rails 4 y Devise 3
fuente
default_url_options
causó un error que hizo que mis activos de precompilación fallaran, solo para su información. Cuando lo cambié de nuevo a `= {host: 'myappsname.herokuapp.com'}` funcionó.El que trabaja después de tanta investigación,
No olvide agregar el valor predeterminado de: dirección de correo en su ApplicationMailer (application_mailer.rb) como,
Agregue la siguiente configuración en su production.rb .
Habilite IMAP desde la configuración de Gmail en la pestaña Reenvío de IMAP / POP .
Permitir aplicaciones menos seguras: ENCENDIDO desde https://myaccount.google.com/lesssecureapps
Ahora estás listo para irte. :)
fuente