Google-Maps-for-Rails: ссылка для маркера InfoWindow - PullRequest
0 голосов
/ 06 июля 2011

Я перестраиваю сайт с использованием Ruby on Rails и думаю об использовании превосходного Google-Maps-for-Rails 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 Ответ

1 голос
/ 08 июля 2011

Я разбудил проект, чтобы включить отдельную ссылку для каждого маркера. Посмотрите на https://github.com/noddy/Google-Maps-for-Rails

В вашей модели (используя Location в этом примере) вам нужно добавить дополнительные методы:

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_" } }) %>
...