gmaps4Rails - json被返回为空

时间:2012-10-30 15:17:12

标签: ruby-on-rails gmaps4rails

我在我的应用程序中安装了gmaps4rails。

与视图相关的内容似乎正在运行,因为显示了一个空的谷歌地图。所以我在想我是否正确安装了它。

我在github页面上快速启动:

我的控制器:

def map
    @businesses = Business.all
    @json = @businesses.to_gmaps4rails

    respond_to do |format|
      format.html
      format.json {render json:@businesses}
    end
  end

我的观点:

=gmaps4rails(@json)
=@json

我打印@json并意识到该值为空,即[]

我的business.rb模型:

class Business < ActiveRecord::Base
  belongs_to :city
  belongs_to :category
  has_many :reviews

  attr_accessible :address, :description, :name, :phone, :urbanization, :url, :city_id

  include FriendlyId
  friendly_id :name, :use => :slugged

  acts_as_gmappable

  def gmaps4rails_address
    # "#{self.address}, #{self.urbanization}, #{self.city.name}"
    "619 Johnson Street, Kingston, ON"
  end
end

我硬编码了测试地址......

2 个答案:

答案 0 :(得分:4)

Gmaps4rails没有针对性能问题进行地理编码。

如果对象没有lat或long,

to_gmaps4rails将返回空的json。

您应该预处理对象(只需保存它们)。

答案 1 :(得分:0)

如果您需要为所有对象添加经度和纬度,可以在rails控制台中运行它以获取所有坐标。

Venue.all.each do |venue|
  geo_data = Gmaps4rails.geocode(venue.gmaps4rails_address)
  venue.update_attributes(latitude: geo_data[0][:lat], longitude: geo_data[0][:lng])
  sleep(1)
end