Переменная ENV Rails внутри модуля - PullRequest
0 голосов
/ 01 февраля 2010

Как я могу прочитать переменную ENV

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

MyModule::current_ip

Как?

Ответы [ 2 ]

2 голосов
/ 01 февраля 2010

Проблема здесь в том, что вы ссылаетесь на объект запроса, который не существует в области видимости модуля. Вы должны передать его или хранить где-нибудь.

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 голосов
/ 01 февраля 2010

почему не просто ENV['REMOTE_ADDR']?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...