在Rails中如何使用link_to与谷歌地图创建可点击链接?

时间:2018-02-03 22:01:57

标签: javascript ruby-on-rails google-maps

我正在测试一个rails页面,我在其中搜索检索不同房间的过滤器。现在房间的infoWindow只显示价格,但这不是我需要做的。

我想让infoWindow中的代码可以点击,将我带到那个房间页面。我怎么能这样做?

这是我的java脚本代码

var marker, inforwindow;

        <% @arrRooms.each do |room| %>
          marker = new google.maps.Marker({
            position: {lat: <%= room.latitude %>, lng: <%= room.longitude %>},
            map: map
          });

          inforwindow = new google.maps.InfoWindow({
            content: "<div class='map_price'>$ " + <%=room.price%> + "</div>"


          });
          inforwindow.open(map, marker);
        <% end %>

尝试了不同的方法来包含link_to,但我无法弄清楚如何正确实现。

非常感谢协助和指导。

3 个答案:

答案 0 :(得分:1)

在javascript细分中使用ERB时,请使用escape_javascript帮助:http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html#method-i-escape_javascript

示例:

var marker, inforwindow, windowContent;

<% @arrRooms.each do |room| %>
  marker = new google.maps.Marker({
    position: {lat: <%= room.latitude %>, lng: <%= room.longitude %>},
    map: map
  });

  windowContent = "<div class='map_price'>$<%= escape_javascript room.price %></div>";
  windowContent += "<div><%= escape_javascript link_to('Room Details', room) %></div>";

  inforwindow = new google.maps.InfoWindow({
    content: windowContent
  });
  inforwindow.open(map, marker);
<% end %>

答案 1 :(得分:0)

这可以吗?

    <% @arrRooms.each do |room| %>
      marker = new google.maps.Marker({
        position: {lat: <%= room.latitude %>, lng: <%= room.longitude %>},
        map: map
      });

      inforwindow = new google.maps.InfoWindow({
        content: "<div class='map_price'>$ " + <%=room.price%> + "</div><a href='"+ <%= room_path(room) %> +"'></a>"


      });
      inforwindow.open(map, marker);
    <% end %>

答案 2 :(得分:-1)

你可以尝试!

var marker,inforwindow;

    <% @arrRooms.each do |room| %>
      marker = new google.maps.Marker({
        position: {lat: <%= room.latitude %>, lng: <%= room.longitude %>},
        map: map
      });

      inforwindow = new google.maps.InfoWindow({
        content: "<a href=/rooms/"+room.id+">" + <%=room.price%> + "</a>"


      });
      inforwindow.open(map, marker);
    <% end %>