我有一个rails应用程序。Rails version is 2.3.4和ruby version 1.8.7.在那个应用程序中,我使用geokit (1.5.0) gem和geokit-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我在那行中得到了错误
@公证人= Notary.find(:all,:=> @order.signing_location_zip_code,:=> @miles,:conditions => "on_vacation IS true",:order=>“origin asc")如下, Geokit::Geocoders::Client/ordersController#find_公证中的GeocodeError Geokit::Geocoder::GeocodeError RAILS_ROOT: /home/user/svnnew/主干/app 应用程序跟踪-框架跟踪-完整跟踪 /home/user/.rvm/gems/ruby-1.8.7-p371@app/gems/geokit-1.5.0/lib/geokit/mappable.rb:282:in
normalize' /home/user/svnnew\_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts\_as\_mappable.rb:347:innormalize_point_to_lat_lng‘ /home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:306:inextract\_origin\_from\_options' /home/user/svnnew\_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts\_as\_mappable.rb:203:inprepare_for_find_or_count‘ /home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:108:infind' /home/user/svnnew\_app/trunk/app/app/controllers/client/orders\_controller.rb:331:infind_notary‘ 请求 参数: {"id"=>"1198"} 显示会话转储响应 标题: {“缓存-控制”=>“无缓存”、“内容-类型”“=>”}
如何解决此错误?请帮帮我..。
发布于 2013-12-15 00:29:34
我维持着极客。我看了一下源代码,当API返回的响应不是数字时就会发生,例如字符串,但格式不是'99.99,88.88',所以如果地理编码API返回'NA‘之类的话,就会发生。
我知道StackOverflow说“避免”以下内容(澄清、意见等),但如下所示:
如果你不做几件事,我就无能为力了:
1)如果可以更新最新的geokit (gem: 1.7.1或最新的github主版)
2)进行一些调试,例如Open“/home/user/.rvm/gems/ruby-1.8.7-p371@app/gems/geokit-1.5.0/lib/geokit/mappable.rb”(第282行)和最少“放置”导致错误的字符串以及任何其他相关的局部变量。
使用像pry/pry-调试器这样的宝石是任何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中也被放弃了,尽管我很乐意提供帮助,因为在支持rails版本的geokit-rails中可能会出现问题。
https://stackoverflow.com/questions/20421337
复制相似问题