【问题标题】:TypeError: no implicit conversion of Symbol into Integer for search with geokit-railsTypeError:没有将 Symbol 隐式转换为 Integer 以使用 geokit-rails 进行搜索
【发布时间】:2014-08-08 13:29:10
【问题描述】:

我已经使用地理编码器安装了 geokit-rails gem,并使用正确的 API 密钥和设置正确加载了我的配置。我已经正确构造了 ActiveRecord 对象,这些对象使用浮点值对 latlng 列进行了编码。现在我正在尝试简单地搜索距给定原点 100 公里以内的场地(场地活动记录),如下所示:

Venue.within(100, origin: Geokit::LatLng.new(-27.12,124.2141))

但我一直收到错误消息:

TypeError: no implicit conversion of Symbol into Integer
    from /usr/local/lib/ruby/gems/2.1.0/gems/geocoder-1.2.3/lib/geocoder/sql.rb:14:in `[]'
    from /usr/local/lib/ruby/gems/2.1.0/gems/geocoder-1.2.3/lib/geocoder/sql.rb:14:in `full_distance'
    from /usr/local/lib/ruby/gems/2.1.0/gems/geocoder-1.2.3/lib/geocoder/stores/active_record.rb:157:in `distance_sql'
    from /usr/local/lib/ruby/gems/2.1.0/gems/geokit-rails-2.0.1/lib/geokit-rails/acts_as_mappable.rb:228:in `distance_conditions'
    from /usr/local/lib/ruby/gems/2.1.0/gems/geokit-rails-2.0.1/lib/geokit-rails/acts_as_mappable.rb:108:in `within'
    from (irb):46
    from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.0/lib/rails/commands/console.rb:90:in `start'
    from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.0/lib/rails/commands/console.rb:9:in `start'
    from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:69:in `console'
    from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.0/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.0/lib/rails/commands.rb:17:in `<top (required)>'
    from bin/rails:4:in `require'
    from bin/rails:4:in `<main>'

有人会帮忙吗?

【问题讨论】:

  • Geokit/geokit-rails 不能一起使用。如果可能,您可能希望仅尝试使用 1。请问您为什么同时使用两者?
  • 谢谢@MichaelNoack 我不记得我为什么同时使用这两种方法,但这可能是问题的原因。我会尽力回复你。
  • 抱歉,我的意思是 geocoder 和 geokit 不能一起使用。 geokit-rails 需要 geokit,所以它们是一起使用的:)

标签: ruby-on-rails ruby activerecord geocoding geokit


【解决方案1】:

您可以在 Lat&Long 方法中直接使用 Geokit - from docs。 F.e: :origin =&gt; [37.792,-122.393]. 在你的情况下Venue.within(100, origin: [-27.12,124.2141])

您为什么为此使用 Geokit::LatLng.new?

【讨论】:

  • 我用它来使代码清晰,但是我已经尝试过了,它并没有解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2020-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多