イニシャライザで にRailsアプリケーション(または一般的なRackアプリケーション)が実行されているポートを特定する方法はありますか?イニシャライザでRailsが実行されているポートを確認する方法
ホスト固有のFaceBookアプリケーションに接続するために、ポートまたはホスト名に基づいて別の設定をロードしたいと考えています。
私はRails 2.3.5を使用しています。
イニシャライザで にRailsアプリケーション(または一般的なRackアプリケーション)が実行されているポートを特定する方法はありますか?イニシャライザでRailsが実行されているポートを確認する方法
ホスト固有のFaceBookアプリケーションに接続するために、ポートまたはホスト名に基づいて別の設定をロードしたいと考えています。
私はRails 2.3.5を使用しています。
rubyforum:http://www.ruby-forum.com/topic/196017#newの答えがここにないことに基づいて、私は がおそらく標準的な方法ではないと考えています。
これはない非常にきれいですが、これはあなたが呼び出すときに宣言したポートを得ることができる方法です:
あなたは(レール3用)、アプリケーション内の好きな場所 rails server -p portnumber
。ここで
は私のスクリプト/ 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']
です。
Rails::Server.new.options[:Port]
に電話すると、Railsサーバーが実行されているポートを取得できます。これにより、rails server
コマンドの-p
argが解析されます。デフォルトのポートは3000
です。
Rails 3.2アプリでこれをやろうとすると、 'Rails :: Server'という定数が初期化されていません。 – Andrew
解決方法が見つからない場合は、これを試してください。http://stackoverflow.com/questions/1554267/how-to-find-the-local-port-a-rails-instance-is-running- on/1554523#1554523 – vise
うん、リクエストからポートを取得するのはかなり簡単ですが、イニシャライザではリクエストがありません。私はSinatra :: Application.portにリンクされている質問と同様のものを探していますが、SinatraではなくRailsのために探しています。 – zoli
イニシャライザを必要としない一般的な質問:http://stackoverflow.com/questions/1554267/how-to-find-the-local-port-a-rails-instance-is-running-onコントローラとイニシャライザの両方の答え) –