web-dev-qa-db-ja.com

Rails:現在のホストを取得する方法、またはそれを使用してURLを作成する方法

ホストを使用して、別のポートでURLを作成する必要があります。

たとえば、ホストがexample.comの場合、 http://example.com:8080/ のようなURLを生成する必要があります

ポータブルである必要があるため、ローカル環境にいるときは、代わりに http:// localhost:8080 / と表示されます。

何か案は?

22
HappyDeveloper

ApplicationControllerbefore_filterをよく使用して、次のようなホスト名でインスタンス変数を設定します。

@hostname = request.Host || "www.mydomain.com"

request.portを使用して、リクエストが通過したポート番号を取得することもできます(HTTPヘッダーから取得)。

43
Alex D

基本的に、現在のURLと他のポート番号に基づいてURLを生成する必要があります。として行うことができます-

request.url(:port => 20)

オンRails console

app.root_url(:port => 20)
 => "http://www.example.com:20/" 

URLからホストを抽出するには

request.Host
8
Sandip Ransing