ruby-on-rails - Rails 4 gmaps4rails - 如何在 gmaps4rails gem 的标记信息窗口中包含指向 "show" View 的链接

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

我已经让 gmaps4rails 在我的 rails 4 应用程序中工作,并带有标记用于我的涂层,我想在每个位置的标记中包含一个链接到每个位置的单独显示 View 。

我的空间 Controller 索引操作如下所示:

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) %>

我的spaces/index.html View 中的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>

根据我之前的搜索,这似乎是在标记的信息窗口中获取链接的方法,但如果有替代解决方案,我很想听听,谢谢。

最佳答案

最初由 OP 在问题本身中发布

空间 Controller 索引操作应如下所示:

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

部分 View 应如下所示:
<%= link_to 'See Space', space_path(object) %>

关于ruby-on-rails - Rails 4 gmaps4rails - 如何在 gmaps4rails gem 的标记信息窗口中包含指向 "show" View 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988903/

相关文章:

mysql - Rails 3rd 方大型数据库更新无需停机

php - 使用 s3 作为数据存储的 CMS?

ruby-on-rails - Omniauth Rspec 测试问题

java - 在android中的静态 map 上使用gps?

ruby-on-rails - 在 Rails 应用程序中重新定义 $stdout 和 $stderr 的副作用

javascript - Google map api 未返回范围内的所有地点

ruby-on-rails - 为 Rails 项目指定 Postgresql DB 默认排序规则

ruby-on-rails - 我如何将 Rails 模型指向 json 文件而不是创建表

ruby-on-rails - PG::StringDataRightTruncation:错误:PostgreSQL字符串(255)限制| Heroku

android - 手动在谷歌地图上拖放图钉并相应地获取经度和纬度