2011-12-14 19 views
1

我正在編寫一個OmniAuth dynamic provider,並在回調中需要獲取當前主機名(該應用程序可以在多個不同的主機名中工作)。我沒有請求對象,只是一個很大的env散列。我發現這個哈希包含一個條目env [「SERVER_NAME」]和主機名,但我不確定這是一個穩定的條目,還是可能會根據Web服務器或類似的東西改變。在Rails應用程序中從env哈希獲取主機名的最佳方式是什麼?

我還發現隱藏在成員變量@host的env [「action_dispatch.routes」]中的主機名。

任何想法此時獲取主機名的最佳或規範方法是什麼?

回答

3

該應用尚未投入生產,但到目前爲止,使用env["SERVER_NAME"]的私人測試版像一個魅力一樣工作。

1

在Rails控制器,你可以簡單地使用:

request.host 

雖然我不知道如果源從任何你已經看了不同。在我正在使用的Rails 3.1應用程序中,這對我來說很好。

+0

我不是一個Rails控制器,我正在實施OmniAuth動態提供程序的設置方法。 – Pablo 2011-12-16 13:18:28

相關問題