0

私はレールアプリケーションを持っています。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 => @order.signing_location_zip_code, :within => @miles, :conditions => "on_vacation IS NOT true",:order="distance asc") このように、

Geokit::Geocoders::GeocodeError in Client/ordersController#find_notary

Geokit::Geocoders::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: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 `find'

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

リクエスト

パラメーター:

{"id"=>"1198"}

セッション ダンプの応答を表示

ヘッダー:

{"Cache-Control"=>"no-cache", "Content-Type"=>""}

このエラーを解決するにはどうすればよいですか? 私を助けてください..

4

1 に答える 1

0

私はジオキットを維持しています。ソース コードを確認したところ、API から返された応答が数値ではなく、たとえば文字列であるが「99.99, 88.88」の形式ではない場合に、その行が発生します。ジオコーディング API が「NA」または「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 のような gem を使用することは、このような問題をデバッグする Ruby 開発者にとって必須です。

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 との互換性さえ失われました。レールバージョン。

于 2013-12-15T00:29:34.230 に答える