Google-Maps-for-Rails:用于标记InfoWindow的链接

时间:2011-07-06 11:41:38

标签: ruby-on-rails ruby-on-rails-3 google-maps google-maps-markers gmaps4rails

我正在使用Ruby on Rails重建网站并考虑使用优秀的Google-Maps-for-Rails gem。

gem可以选择为所有标记生成自定义链接列表:

<ul id="markers_list">
 <li>
  <a href="javascript:void(0);">Marker A</a>
 </li>
 <li>
  <a href="javascript:void(0);">Marker B</a>
 </li>
</ul>

但是,我需要添加其他内容,所以不要只显示我需要为每个标记生成以下内容的链接列表

<ul id="marker_a">
  <li><h3>Marker A</h3></li>
  <li>Details about Marker A</li>
  <li>
    <a href="javascript:void(0);">Show Marker A on Map</a>
  </li>
</ul>

有人能提出最好的解决方法吗?

1 个答案:

答案 0 :(得分:1)

我已经分叉了项目,为每个标记启用了一个独立的链接。看看https://github.com/noddy/Google-Maps-for-Rails

在您的模型中(在此示例中使用位置),您需要添加额外的方法:

class Location < ActiveRecord::Base
 def gmaps4rails_link
   id.to_s
 end

 def gmaps4rails_link_text
   "Show #{name} on Map"
 end
end

然后在您的视图中(在此处使用HAML),您可以添加以下内容:

- @locations.each do |location|
  %ul
    %li
      %h2
        = location.name
    %li{:id => "map_link_" + location.id.to_s}

然后使用

正确调用gmaps4rails
 <%= gmaps("markers" => {"data" => @json, "options" => {"link_container" => "map_link_" } }) %>