我需要根据环境设置独角兽的端口。如下所示:
#config/unicorn.rb
if Rails.env.production?
listen 8080, :tcp_nopush => true
elsif Rails.env.staging?
listen 3001, :tcp_nopush => true
end上面的代码返回这个错误:
[out :: 172.30.1.24] config/unicorn.rb:32:in `reload': uninitialized constant Unicorn::Configurator::Rails (NameError)如何根据环境改变端口?
泰!
发布于 2013-01-24 07:16:08
尝试检查环境变量
environment = ENV['RACK_ENV'] || ENV['RAILS_ENV'] || 'production'发布于 2013-01-24 07:41:11
您需要加载Rails环境才能访问Rails.env:
# config/unicorn.rb
require File.dirname(__FILE__)+'/application'
port = case Rails.env
when 'production' then 8080
when 'staging' then 3001
else 3000
end
listen port, :tcp_nopush => true发布于 2013-01-27 14:19:25
看起来您可能遇到了名称空间查找问题。您的代码是在Unicorn::Configurator上下文中进行评估的,并且您在条件( if Rails.env部分)中有一个Rails的“裸词常量查找”。您可以改为使用::Rails强制执行顶级查找:
if ::Rails.env.production?
# etc.
end希望这能有所帮助。
https://stackoverflow.com/questions/14384041
复制相似问题