Rails 2.3.4 Geokit错误?

时间:2013-12-06 10:16:08

标签: ruby-on-rails ruby ruby-on-rails-2 geokit

我有一个rails应用程序。 Rails version is 2.3.4ruby version 1.8.7。在该应用程序中,我使用了geokit (1.5.0) gemgeokit-rail插件来查找最近的位置。

在我的模型中,我有这样的代码,

class Notary < ActiveRecord::Base

acts_as_mappable

end

在我的控制器中有这样的代码,

class Client::OrdersController < ApplicationController

    def find_notary
    @order = Order.find(params[:id])
    @miles = 10
    unless params[:notary_search]
      @notaries = Notary.find(:all, :origin => @order.signing_location_zip_code, :within => @miles, :conditions => "on_vacation IS NOT true",:order=>"distance asc" )
    else
    some code
    end
end

end

我在该行错误

  

@notaries = Notary.find(:all,:origin =&gt;   @ order.signing_location_zip_code,:within =&gt; @miles,:conditions =&gt;   “on_vacation IS not true”,:order =&gt;“distance asc”)就像这样,

     

Geokit :: Geocoders :: GeocodeError in   客户机/ ordersController#find_notary

     

Geokit ::地址解析器:: GeocodeError

     

RAILS_ROOT:/ home / user / svnnew_app / trunk / app

     

应用程序跟踪|框架跟踪|完整跟踪

     

/home/user/.rvm/gems/ruby-1.8.7-p371@app/gems/geokit-1.5.0/lib/geokit/mappable.rb:282:in   `正常化“

     

/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:347:in   `normalize_point_to_lat_lng'

     

/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:306:in   `extract_origin_from_options'

     

/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:203:in   `prepare_for_find_or_count'

     

/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:108:in   `找到'

     

/home/user/svnnew_app/trunk/app/app/controllers/client/orders_controller.rb:331:in   `find_notary'

     

请求

     

参数:

     

{ “ID”=&gt; “中1198”}

     

显示会话转储响应

     

接头:

     

{“Cache-Control”=&gt;“no-cache”,“Content-Type”=&gt;“”}

如何解决此错误?请帮帮我......

1 个答案:

答案 0 :(得分:0)

我维护geokit。我查看了源代码,当API返回的响应不是数字时,就会出现这种情况,例如:一个字符串,但格式不是'99 .99,88.88',所以如果地理编码API返回'NA'或者某些东西就会发生。

我知道StackOverflow说“避免”以下(澄清,意见等),但这里是:

如果没有你做一些事情,我无法进一步帮助:

1)如果你可以更新到最新的geokit(gem:1.7.1或最新的github master)

2)做一些调试,例如打开“/home/user/.rvm/gems/ruby-1.8.7-p371@app/gems/geokit-1.5.0/lib/geokit/mappable.rb”(第282行)并将“put”字符串打开导致错误以及任何其他相关的局部变量。

使用像pry / pry-debugger这样的宝石是任何ruby开发人员调试此类问题的必备条件。

3)尽可能更新其他软件(甚至升级到最新的ruby 1.8.7和rails 2.x) 你是ruby(1.8.7)和rails(2.x)都很老,并且包含各种安全问题,应该引起一些关注。我尽力保持geokit / geokit-rails与ruby 1.8.7一起使用,但即使是rails 2兼容性也被geokit-rails删除了,虽然我很乐意提供帮助,因为你可能会发布geokit-rails中的问题并且支持导轨版本。