我的一个rails应用程序开发遇到了问题。我使用heroku部署我的rails应用程序(prod env)。我对dev和prod环境有误解。
当我在dev环境中的rails控制台(rails控制台,在我的计算机本地)中执行"require 'socket';TCPSocket.new(nil,80)“,并在heroku的rails命令中执行相同的命令(heroku运行rails控制台)时,我没有得到相同的结果。
在dev环境中,我得到"#TCPSocket:fd 18“,然后没有出现问题,但在prod环境中,我得到了"Errno::ECONNREFUSED: Connection refused connect(2) for nil port 80”。
来自(irb):1:in initialize' from (irb):1:innew‘
来自(irb):1
来自/app/供应商/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‘
来自/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‘’
from /app/bin/rails:9:in‘`require’
来自/app/bin/rails:9:in main“
我有相同的环境(相同版本的ruby、rails等)所以,如果你们中的一个人之前已经遇到过这个问题,或者可以解释一下TCPSocket在这种情况下的行为。
提前谢谢你。
发布于 2016-03-11 20:49:32
你的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
}结束
https://stackoverflow.com/questions/35939051
复制相似问题