我正在尝试编写我的第一个机架中间件。并需要帮助。我希望中间件找到请求者的IP,如果它在允许的IP列表中继续请求,否则它将中止。
棘手的部分是我需要这个在heroku上工作,你不能使用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 doc上。
那里有架构中间件专家吗?感谢
答案 0 :(得分:0)