gpt4 book ai didi

ruby-on-rails - Heroku/devise - 缺少要链接的主机!请提供:host parameter or set default_url_options[:host]

转载 作者:行者123 更新时间:2023-12-03 04:15:21 25 4
gpt4 key购买 nike

我正在尝试在heroku上推送我的应用程序。我还在开发中。我将设备与可确认模块一起使用。

当我尝试使用 heroku 控制台添加用户时,出现此错误:

Missing host to link to! Please provide :host parameter or set default_url_options[:host]

在测试和开发环境中我有以下行:

环境/development.rb和环境/test.rb

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'

已编辑 (2)

当我在控制台上输入 Heroku Logs 时,我得到了这个 ==> 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'

最佳答案

您需要将其添加到您的environment.rb

  config.action_mailer.default_url_options = { :host => 'localhost' }

确保将 host 更改为您的生产 URL,并将其保留为 localhost 以进行开发。这是针对邮件程序的,它需要默认电子邮件来发送确认等通知...

<小时/>

您应该检查从控制台运行的heroku服务器heroku日志上的日志,它会告诉您确切的错误。

当您推送到heroku时,您需要使用heroku子域配置environment.rb文件:

config.action_mailer.default_url_options = { :host => 'yourapp.heroku.com' }
<小时/>

根据版本的不同,它应该位于 生产.rb 中,而不是 environment.rb 中。

关于ruby-on-rails - Heroku/devise - 缺少要链接的主机!请提供:host parameter or set default_url_options[:host],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4114835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com