[英]Rails 2.3.4 Geokit error?
我有一個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
我在那一行中出錯
@notaries = Notary.find(:all,:origin => @ order.signing_location_zip_code,:within => @miles,:conditions =>“ on_vacation不正確”,:order =>“距離asc”),
客戶端/訂單中的Geokit :: Geocoders :: GeocodeErrorController#find_notary
Geokit :: Geocoders :: 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:在“規范化”中
/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:在`extract_origin_from_options'中
/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:203:在`prepare_for_find_or_count'中
/home/user/svnnew_app/trunk/app/vendor/plugins/geokit-rails/lib/geokit-rails/acts_as_mappable.rb:108:在“查找”中
/home/user/svnnew_app/trunk/app/app/controllers/client/orders_controller.rb:331:in'find_notary'
請求
參數:
{“ id” =>“ 1198”}
顯示會話轉儲響應
標頭:
{“ Cache-Control” =>“ no-cache”,“ Content-Type” =>“”}
如何解決這個錯誤? 請幫幫我..
我維護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行),然后至少將引起錯誤的字符串與任何其他相關的局部變量“放入”。
對於任何紅寶石開發人員而言,必須使用諸如pry / pry-debugger之類的寶石來調試此類問題。
3)在可能的情況下更新其他軟件(甚至升級到最新的ruby 1.8.7和rails 2.x)您的ruby(1.8.7)和rails(2.x)都很老,並且包含各種安全問題,應該有些關注。 我盡我所能使geokit / geokit-rails與ruby 1.8.7一起工作,但是geokit-rails中甚至降低了rails 2的兼容性,盡管我很樂意為您提供幫助,因為您可能會在支持的geokit-rails中遇到問題導軌版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.