Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails gmaps4Rails-json返回为空_Ruby On Rails_Gmaps4rails - Fatal编程技术网

Ruby on rails gmaps4Rails-json返回为空

Ruby on rails gmaps4Rails-json返回为空,ruby-on-rails,gmaps4rails,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:@busin

我在我的应用程序中安装了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
并意识到该值为空,即
[]

My 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
class业务:sluged
可作为
def gmaps4rails_地址
#“{self.address},{self.都市化},{self.city.name}”
华盛顿州金斯敦约翰逊街619号
结束
结束

我为测试硬编码了地址…

出于性能考虑,Gmaps4rails不会动态地进行地理编码

to_gmaps4rails
如果对象没有lat或long,则返回空json


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

如果需要为所有对象添加经度和纬度,您可以在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

我也有同样的问题。它第一次就做到了,但是现在我想再次更新lat-lon,在一次简单的保存之后它就不会这么做了。有什么想法吗?Joel@joelmaranhao阅读文档:gmaps布尔值防止每次保存对象时触发地理编码。如果您想要地理编码,请将布尔值设置为false。我刚刚发现,没有时间取消我的评论。但是请不要抛出“阅读文档”,我喜欢gmaps4rails,我已经阅读过很多次了。可能不正确。。。但别让我觉得自己是个不做家庭作业的青少年。求你了@乔尔马兰豪:)我想我有时候有点苛刻。如果文档不清楚或更好,请共享,推送修改!不,医生,宝石很好。只是我老了,工作时间太长了。又是thx