Rails 4 gmaps4rails - 如何包含指向" show"的链接查看标记infowindow在gmaps4rails宝石

时间:2015-06-22 20:07:49

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

我已经在我的rails 4应用程序中使用了gmaps4rails,带有用于我的标记的标记,并且我想在每个位置的标记中包含每个位置的个人显示视图的链接。

我的空间控制器索引操作如下所示:

def index
    @spaces = Space.all
    @hash = Gmaps4rails.build_markers(@spaces) do |space, marker|
      marker.lat space.latitude
      marker.lng space.longitude
      marker.infowindow render_to_string(:partial => "/spaces/infowindow", :locals => { :object=> space})
    end
end

我的信息部分是:

<%= link_to "Show", space_path(space) %>

我的space / index.html视图中的我的gmaps4rails javascript脚本是:

<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();
});
</script>

当我尝试加载我的空间索引页面时,我收到以下错误消息:

undefined local variable or method `space' for #<#<Class:0x4638c48>:0x5335f20>

根据我以前的搜索,这似乎是让标记的信息链接工作的方法,但如果有其他解决方案,我很乐意听到它,谢谢。

1 个答案:

答案 0 :(得分:1)

最初由OP发布在问题本身

空格控制器索引操作应如下所示:

def index
    @spaces = Space.all
    @hash = Gmaps4rails.build_markers(@spaces) do |space, marker|
      marker.lat space.latitude
      marker.lng space.longitude
      marker.json({:id => space.id })
      marker.infowindow render_to_string(:partial => "/spaces/infowindow", :locals => { :object => space})
    end
end

和部分视图应如下所示:

<%= link_to 'See Space', space_path(object) %>