Rails 4 - 谷歌地图在一个视图中工作,但在另一个视图中不工作

时间:2016-06-17 07:45:06

标签: ruby-on-rails google-maps associations gmaps4rails

我正在试图弄清楚如何在我的rails 4 app中设置我的gmaps4rails。

我有称为地址,项目和简介的模型。

协会是:

地址

belongs_to :addressable, :polymorphic => true

资料

has_many :addresses, as: :addressable
    accepts_nested_attributes_for :addresses,  reject_if: :all_blank, allow_destroy: true

项目

has_many :addresses, as: :addressable
      accepts_nested_attributes_for :addresses,  reject_if: :all_blank, allow_destroy: true

我在项目和配置文件脚手架中都有相同的设置。当我在配置文件脚手架中填写地址表单时,配置文件视图会正确呈现地图。

当我在项目脚手架中执行以下操作(这反映了我在配置文件脚手架中所做的事情)时,我得到一个空白的空白区域,其中应该有一个地图。

项目管理员:

def show
    @invite = Invite.new
    @project = Project.find(params[:id])
    @addresses = @project.addresses

      @hash = Gmaps4rails.build_markers(@addresses) do |address, marker|
        marker.lat address.latitude
        marker.lng address.longitude
        marker.infowindow address.full_address

      end

这在配置文件控制器中都是一样的,除了它要求@ profile.addresses而不是@project.addresses(并且在配置文件视图中一切正常。

  end

  # GET /projects/new
  def new
    @project = Project.new
    @project.addresses.build



  end

  # GET /projects/1/edit
  def edit
     @project.addresses_build unless @project.addresses
  end

在项目视图中部分:

<script src="//maps.google.com/maps/api/js?v=3.18&sensor=false&client=&key=&libraries=geometry&language=&hl=&region="></script>


<div style='width: 800px;'>
  <div id="map" style='width: 800px; height: 400px;'></div>
</div>

<script>
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
  markers = handler.addMarkers(<%=raw @hash.to_json %>);
  handler.bounds.extendWith(markers);
  handler.fitMapToBounds();
  handler.getMap().setZoom(8);
});
</script>

当我在chrome中检查元素时,在项目视图中,我可以看到map有一个div标签,我可以看到脚本中填充了一个地址(如下)

handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
  markers = handler.addMarkers([{"lat":-33.858296,"lng":151.193575,"infowindow":"15 Pitt Street\u003cbr\u003eSydney   NSW   2000\u003cbr\u003eAustralia"}]);
  handler.bounds.extendWith(markers);
  handler.fitMapToBounds();
  handler.getMap().setZoom(8);
});
  • 但不显示地图。

任何人都可以看到这出错的地方吗?

0 个答案:

没有答案