2010-08-04 103 views
0

我正在嘗試創建一個gem,並希望在其中使用它時需要客戶端IP地址。基本上它就像軌道ActionController request.remote_ip,但在寶石內我不想依賴/依賴軌道。Ruby - 從gem中獲取客戶端IP地址

有沒有什麼辦法可以像純粹使用Ruby一樣?

我發現this,但在部署到生產服務器只得到服務器IP地址而不是客戶之一。

任何幫助將非常讚賞

非常感謝

+0

我自己也有同樣的問題,並一直追蹤到機架級別。我從來沒有找到任何方式來訪問當前的請求對象。看起來它與ApplicationController綁定在一起,似乎沒有任何方法可以從gem/plugin範圍訪問它。 似乎唯一的解決方案是讓IP從控制器傳遞給你的寶石。 – aNoble 2010-08-17 19:03:26

+0

aNoble是正確的,包含在Rails應用程序中的任意gem沒有任何路徑「向上」到具有客戶端請求上下文的對象。如果你的寶石需要這些數據來達到它的預期目的,那麼你的API必須被更改爲要求信息被「向下」傳遞到你的寶石中。這可以明確地(作爲IP地址/字符串)或隱式地(作爲對可以從中獲得請求數據的對象的引用) – SciPhi 2012-10-22 18:55:08

回答

-1

這是可能的,因爲紅寶石的:)如果你正在開發一個web應用程序,你應該使用機架!它非常酷且簡單,否則你將不得不處理'淨'模塊。