Estou tentando empurrar meu aplicativo no heroku. Eu ainda estou no dev. Eu uso o dispositivo com o módulo verificável.
Quando tento adicionar um usuário ao console heroku, recebi este erro:
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
No ambiente de teste e desenvolvimento, tenho a seguinte linha:
ambientes / development.rb e ambientes / test.rb
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
Não configurei algo no ambiente de produção.
Eu tentei empurrar com
config.action_mailer.default_url_options = { :host => 'mywebsitename.com' }
config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }
mas também não funciona ..
Vejo na web que isso pode estar relacionado ao ActionMailer, mas não sei o que tenho que configurar. Muito obrigado pela sua ideia!
EDITADO:
Oi,
Para não travar meu aplicativo quando pressiono o heroku, coloquei isso no meu env / test.rb e no meu env / dev.rb (não no env.rb, acho que é porque é um aplicativo do Rails 3)
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
Mas quando tentei criar um usuário no console heroku:
User.create(:username => "test", :email => "[email protected]", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")
aqui estão os erros que eu tenho:
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)
Quando digito os logs do heroku no console, obtive isso ==> production.log <== Então, acho que quando alguém implanta no heroku, ele já está em produção.
Eu configuro o env / prod.rb assim:
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
e agora tenho isso como erro ao tentar criar um usuário:
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'
fonte
:host => 'yourapp.heroku.com'
esse deve ser o seu domínio. Por exemplo, se seu domínio é yahoo.com, deve seryahoo.heroku.com
ou se você já configurou domínios personalizados, será apenas o seu URLyahoo.com
config.action_mailer.default_url_options = { :host => 'yourapp.herokuapp.com'
, ao contrário de apenasconfig.action_mailer.default_url_options = { :host => 'yourapp.heroku.com'
?Está bem,
Primeiro você precisa instalar a gem sendgrid com esta linha de comando:
Então você só precisa configurar seu env / dev.rb e env / prod.rb assim:
env / dev.rb
env / prod.rb
Empurre o git e o heroku. Deveria funcionar ..
fonte
method_missing': undefined method
action_mailer' for # <Rails:: Aplicação :: Configuração: 0x0000000241f760> (NoMethodError)A resposta de Codeglot acima faz o trabalho, mas queríamos algo um pouco mais flexível, então fizemos o seguinte:
No Heroku, executamos vários ambientes de produção para preparo e teste, portanto, precisamos de uma solução flexível para o arquivo de ambiente production.rb.
Em production.rb
Em seguida, defina a variável de ambiente MAILER_URL para seu aplicativo da seguinte maneira
fonte
Se você estiver executando o Cedar :
executar a
heroku addons:add sendgrid:free
partir do seu console.Adicione as seguintes linhas
config/environments/production.rb
no seu aplicativo..
fonte
Eu tive que fazer várias coisas para fazê-lo funcionar no ambiente de produção : Dentro do meu
production.rb
arquivo (/config/environments/production.rb), adicionei o seguinte:Isso ocorre com o Rails 4 e o Devise 3
fonte
default_url_options
causou um erro que fez meus recursos de pré-compilação falharem, apenas para sua informação. Quando eu mudei de volta para `= {host: 'myappsname.herokuapp.com'}` `funcionou.O trabalho depois de tantas pesquisas,
Não se esqueça de adicionar o endereço padrão de: mail no ApplicationMailer (application_mailer.rb) como,
Adicione a configuração abaixo em seu production.rb .
Ative o IMAP nas configurações do Gmail na guia Encaminhamento IMAP / POP .
Permitir aplicativos menos seguros: ATIVADO em https://myaccount.google.com/lesssecureapps
Agora você está pronto para ir. :)
fonte