小编Mar*_*oli的帖子

gmaps4rails:如何在标记上实现可点击链接

使用Rails 3.2.13,ruby 1.9.3p374和Gmaps4rails 1.5.6.

我一直在讨论一些事情,起初,我认为应该是相当直接的:我想显示一个标记,当点击时,将重定向到特定路径,在同一窗口中加载该路径.

Gmaps4rails在他们的描述中没有简单的选择.所以我花了无数个小时搜索网页,以及我在StackOverflow中找到的两个最佳点击:闻起来像正确的路径,但这个似乎也很有用.

最后,我的控制器看起来像:

@gmapsjson = current_user.houses.all.to_gmaps4rails do | house, marker |
  marker.title house.reference
  marker.json({:link => polymorphic_url(house, :routing_type => :path)})
end
Run Code Online (Sandbox Code Playgroud)

这是正确的(我认为)在处理过的html中生成以下内容:

<script src="//maps.google.com/maps/api/js?v=3.8&amp;sensor=false&amp;client=&amp;key=&amp;libraries=geometry&amp;language=&amp;hl=&amp;region=" type="text/javascript"></script>

<script type="text/javascript">
  Gmaps.map = new Gmaps4RailsGoogle();
  Gmaps.load_map = function() {
    Gmaps.map.map_options.auto_zoom = false;
    Gmaps.map.map_options.zoom = 3;
    Gmaps.map.initialize();
    Gmaps.map.markers = [{"title":"First House","link":"/houses/1","lat":-3.4671425,"lng":12.5264373},{"title":"Second House","link":"/houses/2","lat":-4.5543296,"lng":-3.4151647}];
    Gmaps.map.create_markers();
    Gmaps.map.adjustMapToBounds();
    Gmaps.map.callback();
 };
 Gmaps.oldOnload = window.onload;
  window.onload = function() { Gmaps.triggerOldOnload(); Gmaps.loadMaps(); };
</script>
Run Code Online (Sandbox Code Playgroud)

标记出现在正确的位置.但是现在,解释第一个相关引用上的描述,我直接在视图上键入,确保它将出现在所有其他javascripts Gmaps4Rails转储到生成的html中:

<script type="text/javascript">
  function redirect_to(url) { …
Run Code Online (Sandbox Code Playgroud)

ruby google-maps ruby-on-rails ruby-on-rails-3 gmaps4rails

1
推荐指数
1
解决办法
1406
查看次数