2010-02-01 82 views
0

Rails的ENV變量我怎麼能讀ENV變量內部模塊

module MyModule 
    def self.current_ip 
    request.env['REMOTE_ADDR'] 
    end 
end 

MyModule::current_ip 

如何?

回答

2

這裏的問題是您引用了模塊範圍中不存在的請求對象。 您需要將其傳遞或存儲在某個地方。

module MyModule 
    mattr_accessor :request 
    def self.current_ip 
    request.env['REMOTE_ADDR'] 
    end 
end 

# store the request using a before filter 
# or similar approach 
MyModule.request = request 

MyModule::current_ip 

根據您的情況,可能會有更優雅的解決方案。

0

爲什麼不只是ENV['REMOTE_ADDR']

+0

它總是零。 – xpepermint 2010-02-01 14:36:14