在Rails 4中调用Geocoder方法时的EOFError

时间:2015-10-21 22:33:03

标签: ruby-on-rails eof rails-geocoder

所以我试图通过向我的Geocoder方法Geocoder.coordinates("Miami")提供一个城市来提交基于位置的搜索,但我的Rails应用程序抛出了这个例外:

EOFError in ListingsController#search

end of file reached

我的开发日志并没有真正解释发生了什么:

enter image description here

我的代码在我的控制器的Geocoder调用中切断并抛出异常:

def search
  @favorited_listing = FavoritedListing.new
  @listings = Listing.search(params[:search].downcase)
  @results = Array.new
  @cityCoordinates = Geocoder.coordinates(params[:city])  # <= This is where the exception gets thrown



  if !params[:city].nil? && params[:city] != ""
    @results = @listings.select { |listing| listing.location.distance_from(@cityCoordinates) < 50 }
  else
    @results = @listings
  end

  @listings_json = []

  @coordinates = @results.map do |listing|
    @listings_json << listing.as_json(:include => [:location, :pictures])
  end

  respond_with(@results)
end

我在其他帖子中尝试过关于此问题的事情:

  • 删除Sprockets缓存rm -Rf tmp/cache/assets/development/sprockets/*
  • 将项目从git
  • 克隆到新目录

这些都没有奏效。有谁知道发生了什么或者能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

我刚刚运行bundle update并修复了问题。我认为问题是我的net-ssh gem或faraday gem(我认为很可能是法拉第)导致尝试发出http请求时遇到问题。我将更多地研究它并在我了解更多相关信息时更新此响应。

答案 1 :(得分:0)

我发现Geocoder,geokit和geokit-rails都需要更新,这解决了EoF异常的问题。