Techioz Blog

Rails インスタンスが実行されているローカル ポートを見つけるにはどうすればよいですか?

概要

そこで、Rails アプリのインスタンスが、私が遊んでいる「I’m up」のようなものに自身を登録し、どのローカル ポートで実行されているかを言及できるようにしたいと考えています。その方法が見つからないようです。実際、IP を見つけるだけでも難しく、ちょっとしたハックが必要です。

でも、問題ありません。IP は持っています。しかし、mongrel/thin/webrick サーバーがどのポートで実行されているかを確認するにはどうすればよいでしょうか?

非常に明示的に言うと、script/server -p 3001 を使用して Rails アプリを起動した場合、その 3001 をアプリ内にプルするにはどうすればよいでしょうか。

解決策

Rails::Server.new.options[:Port] を呼び出して、Rails サーバーが実行されているポートを取得できます。これにより、rails サーバー コマンドからの -p 3001 args、またはデフォルトのポート 3000 が解析されます。