让Geocoder在dev env中检测硬编码的ip并显示数据

时间:2017-01-06 17:50:37

标签: ruby-on-rails rails-geocoder

刚刚安装了Geocoder并试图让它显示出生命迹象。我希望用户登录并拥有配置文件登录页面以显示其IP上的数据。由于我在开发环境中,这是我尝试临时解决方案:

while(true) {
   var x = foo.next();
   if(x.done)
       break;
    yield x;
}

在视图中:

class SessionsController 

  def create
    user = User.authenticate(params[:username_or_email], params[:password])
    if user
      session[:user_id] = user.id
      redirect_to profile_path, :notice => "Logged in!"
      @request = Rack::Request.new({'REMOTE_ADDR' => '107.128.188.218'})
      @location = @request.location
    #blah blah blah
  end

我得到的错误是<%= @location.data %>

在intializers / geocoder.rb中

undefined method 'data' for nil:NilClass

1 个答案:

答案 0 :(得分:0)

您在SessionsController的create操作中分配了ivars @request@location,但这些变量的生命周期就是该请求。控制器操作完成后,您将客户端的浏览器重定向到ProfilesController,因此您需要将这两个分配移动到ProfilesController#show,然后才能运行。

编辑:由于您说您正在为用户的个人资料使用SessionsController显示操作,因此将这两个语句移动到该操作方法应该可以解决问题。 : - )