如何判断Rails在初始化程序中运行的端口

时间:2010-11-28 07:34:09

标签: ruby-on-rails rack

有没有办法告诉运行Rails应用程序(或通用Rack应用程序)的端口 在初始化程序中?

我希望能够基于端口或主机名加载不同的配置,以便连接到特定于主机的FaceBook应用程序。

我正在使用Rails 2.3.5。

3 个答案:

答案 0 :(得分:2)

这不是很干净,但这是一种可以在调用时获得您声明的端口的方式:
    rails server -p portnumber
您在应用程序中的任何位置(对于rails 3)
这是我的scripts / rails.rb文件:

#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" 
# with Rails 3 gems installed from the root of your application.
ENV['PORT']=ARGV[3]
APP_PATH = File.expand_path('../../config/application',  __FILE__)
require File.expand_path('../../config/boot',  __FILE__)
require 'rails/commands'

然后,只要您想获得服务器的端口号,您只需拨打ENV['PORT']即可。

答案 1 :(得分:2)

您可以调用Rails::Server.new.options[:Port]来获取正在运行Rails服务器的端口。这将解析-p命令中的rails server arg,或默认为端口3000

答案 2 :(得分:1)

基于这里缺少答案以及rubyforum上的这个主题:http://www.ruby-forum.com/topic/196017#new,我认为 可能没有标准的方法来告诉港口。