我在我的一个rails app developpement上遇到了问题。我使用heroku来部署我的rails应用程序(prod env)。而且我对开发和环境之间存在误解。
当我在dev env(rails控制台,在我本地的计算机上)的rails控制台中执行“require'socket'; TCPSocket.new(nil,80)”时,在heroku的rails命令中使用相同的命令(heroku)运行rails控制台),我没有相同的结果。
在开发环境中,我得到“#TCPSocket:fd 18”然后没有问题发生但在prod环境中我得到“Errno :: ECONNREFUSED:连接被拒绝 - 连接(2)为nil端口80
from(irb):1:in initialize'
from (irb):1:in
new'
来自(irb):1
来自/app/vendor/bundle/ruby/2.3.0/gems/railties 4.2.5 / lib / rails / commands / console.rb:110:in“start”
来自/app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5/lib/rails/commands/console.rb:9:in,start'
来自/app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:68:in“console”
来自/app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5/lib/rails/commands/commands_tasks.rb:39:in“run_command!”
来自/app/vendor/bundle/ruby/2.3.0/gems/railties-4.2.5/lib/rails/commands.rb:17:in`'
来自/ app / bin / rails:9:在`require'
来自/ app / bin / rails:9:main
“
我有相同的环境(相同版本的红宝石,铁轨等......) 所以,如果你们中的一个人之前已经遇到过问题,或者可以解释TCPSocket在这种情况下的行为。
提前谢谢。
答案 0 :(得分:0)
你的config / production.rb邮件是否看起来像这样?
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
host = 'yoursubdomain.herokuapp.com'
config.action_mailer.default_url_options = { host: host }
ActionMailer::Base.smtp_settings = {
:address => 'smtp.sendgrid.net', //or whichever u use
:port => '587',
:authentication => :plain,
:user_name => ENV['SENDGRID_USERNAME'],
:password => ENV['SENDGRID_PASSWORD'],
:domain => 'heroku.com',
:enable_starttls_auto => true
}
端