2011-12-14 11 views
1

私はOmniAuth dynamic providerを書いています。コールバックでは、現在のホスト名を取得する必要があります(このアプリケーションはいくつかの異なるホスト名で動作します)。私は要求オブジェクトを持っていない、ちょうど大きなenvハッシュ。私はこのハッシュがホスト名でエントリ、env ["SERVER_NAME"]を含んでいることを発見しましたが、安定したエントリか、それともWebサーバやそのようなものによって変わるかもしれません。Railsアプリケーションでenvハッシュからホスト名を取得する最も良い方法は何ですか?

また、メンバー変数@hostのenv ["action_dispatch.routes"]にホスト名が埋め込まれていることがわかりました。

この時点でホスト名を取得するには、どのような方法が最適ですか、標準的な方法ですか?レールコントローラで

答えて

3

アプリはまだ生産されていませんが、それまでのenv["SERVER_NAME"]を使ったプライベートベータ版は魅力的でした。

1

、あなたは簡単に使用することができます。

request.host 

私はそれはあなたがすでに見たものとは異なる何かをソースするかはわからないけど。これは私が取り組んでいるRails 3.1アプリでうまく動作します。

+0

私はRailsコントローラではありません。OmniAuthダイナミックプロバイダのセットアップメソッドを実装しています。 – Pablo

+0

私は自分で試してみませんでしたが、あなたのコードでrequest.hostを参照し、それが動作するかどうかを確認することをお勧めします。私は、このプロセスのためにRack内でどの変数が作成されているのか分かりません。 – agmcleod

+0

ええ、私はそれを試みた、それは動作しませんでした。今のところ私はenv ["SERVER_NAME"]を使用していますが、実稼働環境ではまだテストしていません。 – Pablo

関連する問題