【问题标题】:Rails 2.3.4 Geokit error?Rails 2.3.4 Geokit 错误?
【发布时间】:2013-12-06 10:16:08
【问题描述】:

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

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

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 在 Client/ordersController#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: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"=>"1198"}

显示会话转储响应

标题:

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

如何解决这个错误?请帮帮我..

【问题讨论】:

  • 我在 Rails 4 中遇到了类似的错误。一旦我确定我的代码没有错误,我意识到我在进行更改后忘记重新启动服务器。

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


【解决方案1】:

我维护 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 这样的 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 兼容性,尽管我很乐意提供帮助,因为您的问题很可能是 geokit-rails 中支持的问题轨道版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多