Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby-从gem内部获取客户端IP地址_Ruby On Rails_Rubygems_Client_Dependencies_Ip Address - Fatal编程技术网

Ruby on rails Ruby-从gem内部获取客户端IP地址

Ruby on rails Ruby-从gem内部获取客户端IP地址,ruby-on-rails,rubygems,client,dependencies,ip-address,Ruby On Rails,Rubygems,Client,Dependencies,Ip Address,我正在尝试创建一个gem,我想在它里面有一个特性,在使用它时,它会获取客户机的ip地址。基本上,它与rails一样,但在gem中,我不想依赖rails 纯粹使用Ruby有没有办法做到这一点 我已经找到了,但是当部署到生产服务器时,它只获得服务器ip地址,而不是客户机ip地址 任何帮助都将不胜感激 非常感谢这是因为Ruby:)如果你正在开发一个web应用,你应该使用rack!它非常酷且简单,否则您将不得不处理“网络”模块。我自己也有同样的问题,并一直跟踪到机架级别。我从未找到任何访问当前请求对象的

我正在尝试创建一个gem,我想在它里面有一个特性,在使用它时,它会获取客户机的ip地址。基本上,它与rails一样,但在gem中,我不想依赖rails

纯粹使用Ruby有没有办法做到这一点

我已经找到了,但是当部署到生产服务器时,它只获得服务器ip地址,而不是客户机ip地址

任何帮助都将不胜感激


非常感谢

这是因为Ruby:)如果你正在开发一个web应用,你应该使用rack!它非常酷且简单,否则您将不得不处理“网络”模块。

我自己也有同样的问题,并一直跟踪到机架级别。我从未找到任何访问当前请求对象的方法。它似乎与ApplicationController绑定在一起,似乎没有任何方法可以从gem/插件范围访问它。似乎唯一的解决方案是让IP从控制器传入对gem的调用。答案是正确的,Rails应用程序中包含的任意gem没有任何路径“向上”到具有客户端请求上下文的对象。如果您的gem需要这些数据来实现其预期目的,则必须更改API,以要求将信息“向下”传递到gem中。这可以是显式的(作为IP地址/字符串)或隐式的(作为对可以从中获取请求数据的对象的引用)