Как сказать, на каком порту работает Rails в инициализаторе - PullRequest
2 голосов
/ 28 ноября 2010

Есть ли способ узнать, на каком порту запущено приложение Rails (или универсальное приложение Rack) в инициализаторе?

Я бы хотел иметь возможность загружать другую конфигурацию в зависимости от порта или имени хоста для подключения к приложению FaceBook для конкретного хоста.

Я использую Rails 2.3.5.

Ответы [ 3 ]

2 голосов
/ 28 ноября 2012

Это не очень чисто, но это способ, которым вы можете получить порт, который вы объявили при вызове:
rails server -p portnumber
где вы хотите в вашем приложении (для рельсов 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'].

2 голосов
/ 12 декабря 2012

Вы можете позвонить Rails::Server.new.options[:Port], чтобы узнать порт, на котором работает ваш сервер Rails. Это позволит проанализировать аргумент -p из вашей команды rails server или по умолчанию использовать порт 3000.

1 голос
/ 01 декабря 2010

На основании отсутствия ответов здесь и этой ветки на rubyforum: http://www.ruby -forum.com / topic / 196017 # new , я думаю, что вероятно, нет стандартного способа определения порта.

...