geocoder gem不读地址

时间:2016-05-13 08:20:11

标签: ruby-on-rails ruby devise gmaps4rails rails-geocoder

我有一个具有单个地址属性的模型。 address属性是一个字符串,因此用户可以使用一个地址属性输入完整地址。地理编码器是否能够从一个属性生成经度或纬度,或者如果我希望地理编码器生成正确的信息,我是否必须使用多个属性,如邮政编码,城市和州?

我之所以提出这个问题的原因是因为我尝试以单一属性的方式进行,而地理编码器不会返回任何内容。显然,当我在仪表板操作中运行调试器时,代码在尝试获取供应商的纬度和经度时会遇到无限循环。

仪表板的方法:

def dashboard        
  if params[:search].present?
    @vendors = Vendor.near(params[:search], 50)
    @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker|
    marker.lat vendor.latitude
    marker.lng vendor.longitude
    marker.infowindow vendor.discount_info
    marker.picture ({
      "url" => "assets/marker.png",
      "width" => 32,
      "height" => 32})
  end
  else
    @vendors = Vendor.all
    @hash = Gmaps4rails.build_markers(@vendors) do |vendor, marker|
      marker.lat 37.3352
      marker.lng -121.8811
      marker.picture ({
        "url" => "assets/marker.png",
        "width" => 32,
        "height" => 32})  
    end
  end  
end

供应商模型:

class Vendor < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable, :confirmable,
         :recoverable, :rememberable, :trackable, :validatable

  geocoded_by :address
  after_validation :geocode, :if => :address_changed?
end

0 个答案:

没有答案