我正在尝试将我的应用程序推送到 heroku 上。我还在开发中。我将设计与可确认模块一起使用。
当我尝试使用 heroku 控制台添加用户时,出现此错误:
Missing host to link to! Please provide :host parameter or set default_url_options[:host]
在测试和开发环境中,我有以下行:
config.action_mailer.default_url_options = { :host => 'localhost:3000' }
我没有在生产环境中设置任何东西。
我试图推动
config.action_mailer.default_url_options = { :host => 'mywebsitename.com' } config.action_mailer.default_url_options = { :host => 'heroku.mywebsitename.com' }
但它也不起作用..
我在网上看到它可能与 ActionMailer 有关,但我不知道我必须配置什么。非常感谢你的想法!
你好,
为了不让我的应用程序在我推送 heroku 时崩溃,我把它放在我的 env/test.rb 和我的 env/dev.rb 中(不是在 env.rb 我认为这是因为它是一个 rails 3 应用程序)
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
但是当我尝试在 heroku 控制台中创建用户时:
User.create(:username => "test", :email => "test@test.com", :password => "test1234", :password_confirmation => "test1234", :confirmed_at => "2010-11-03 14:11:15.520128")
这是我得到的错误:
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'
当我在控制台上输入 heroku 日志时,我得到了这个 ==> production.log <== 所以我认为当一个部署在 heroku 上时,它已经在生产中了。
我像这样配置 env/prod.rb:
现在当我尝试创建用户时出现此错误:
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'
您需要将此添加到您的environment.rb
environment.rb
config.action_mailer.default_url_options = { :host => 'localhost' }
确保更改host为您的生产 url 并将其保留为 localhost 以进行开发。这是给邮寄者的,它需要一个默认的电子邮件来发送诸如确认等通知......
host
您应该检查从控制台运行的 heroku 服务器上的日志heroku logs,它会告诉您确切的错误。
heroku logs
当您推送到 heroku 时,您需要environment.rb使用 heroku 子域配置文件:
根据版本,这应该进入production.rb,而不是environment.rb.
production.rb