如何在Rails中获取客户端的IP地址?

xxy*_*yxx 4 ruby-on-rails ruby-on-rails-3

我在我的控制器中有一个函数,它调用另一个函数来形成需要输入ip地址的模型

  def get_location_users
    if current_user
      return current_user.location_users
    else

      l = Location.find_by_ip(request.remote_ip)

      lu = LocationUser.new({:location_id => l.id, :radius => Setting.get("default_radius").to_i})
      return [lu]
    end
  end
Run Code Online (Sandbox Code Playgroud)

从我收集的remote.request_ip给你的IP地址,但是当我用request.remote_ip调用该函数时,对象是零.如果我输入静态IP地址虽然它产生正确的输出.如果remote.request_ip不这样做,获取IP地址的正确方法是什么?

当我尝试在控制台中输入"request.remote_ip"时,它会从主"返回"未定义的局部变量或方法"请求"

小智 6

您的问题中是否有拼写错误,或者您是否真的在调用remote.request_ip?

正确的方法是 request.remote_ip