Я пытаюсь написать свою первую промежуточную стойку. И нужна помощь. Мне нужно промежуточное программное обеспечение, которое находит IP-адрес запрашивающей стороны и, если оно находится в списке разрешенных IP-адресов, продолжает запрос, в противном случае оно прерывается.
Сложность в том, что мне нужно это, чтобы работать на герою, где вы не можете использовать request.ip: http://developerhemal.tumblr.com/post/3958107290/client-ip-addresses-on-heroku
Итак, у меня есть следующее:
class RestrictIP
def initialize(app, message = "Hello")
@app = app
@message = message
end
def call(env)
dup._call(env)
@ip = env['HTTP_X_REAL_IP'] ||= env['REMOTE_ADDR']
end
def each(&block)
block.call("<!-- #{@ip} -->\n")
@response.each(&block)
end
end
Это ошибки с:
NoMethodError (You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]=):
Для моего первого изменения я просто хочу убедиться, что смогу захватить и поместить IP-адрес запрашивающего в документ html.
Есть ли эксперты по промежуточному программному обеспечению? Спасибо