Geokit Rails:没有将Symbol隐式转换为Integer

时间:2015-02-09 22:21:15

标签: ruby-on-rails ruby geokit

我收到一个模型而不是另一个模型的错误。我可以运行Job.all.within(5, :origin => [0, 0]),但不能运行User.all.within(5, :origin => [0, 0]),即使他们的模型中有相同的信息:acts_as_mappable lng_column_name: :longitude, lat_column_name: :latitude

对于破损的情况,它似乎在这里打破(这是Geokit宝石的代码):

 def within(distance, options = {})
    options[:within] = distance
    #geo_scope(options)
    where(distance_conditions(options))  # HERE
  end

如果我中断,我可以输出:

>> options
=> {:within=>5}
>> distance_conditions(options)
!! #<TypeError: no implicit conversion of Symbol into Integer>

发生了什么?

2 个答案:

答案 0 :(得分:0)

geocoder gem似乎存在依赖性问题。删除geocoder gem应该可以正常工作

 Location.within(5, :origin => [37.792,-122.393])

答案 1 :(得分:0)

对我来说,解决方法是:您需要在模型中的“ geocoded_by”之后加上“ acts_as_mappable”。