最佳答案
我想把我的应用推到 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 中,我想是因为它是一个 Rails3应用程序)
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 log 时,我得到了 this = = > production.log < = = 所以我认为当一个人在 heroku 上部署时,它已经在生产环境中了。
我这样配置 env/prod.rb:
config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
现在,当我试图创建一个用户时,出现了这样的错误:
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'