2015-06-22 11 views
8

Dostałem gmaps4rails pracujących w mojej aplikacji rails 4, ze znacznikami do mojego lcoation, i chciałbym dołączyć link w znacznik każdej lokalizacji do widoku pojedynczego widoku każdej z lokalizacji. DziałanieRails 4 gmaps4rails - Jak dodać link do widoku "show" w znaczniku infowindow w gem gmouts4rails

Moi obowiązuje indeks kontroler wygląda następująco:

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 

Moja infowindow częściowy jest:

<%= link_to "Show", space_path(space) %> 

Moi gmaps4rails javascript skrypt w moich przestrzeniach/index.html jest widok:

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

Kiedy próbuję załadować stronę indeksu spacji, wita mnie następujący komunikat o błędzie:

undefined local variable or method `space' for #<#<Class:0x4638c48>:0x5335f20> 

podstawie moich wcześniejszych poszukiwań wydaje się być sposobem na zdobycie linka pracuje w infowindow markera, ale jeśli istnieje alternatywne rozwiązanie chciałbym to usłyszeć, dziękuję.

+5

Możesz przenieść część UPDATE na odpowiedź na to pytanie i zaakceptuj własne pytanie. W ten sposób twoje pytanie nie pojawi się jako nierozwiązane, a ludzie mogą przegłosować twoją odpowiedź, jeśli im się podoba! :) – zhurora

+0

Proszę nie umieszczać odpowiedzi w pytaniu; zamiast tego opublikuj swoje rozwiązanie jako punkt odpowiedzi. Usunąłem Twoją edycję z tego wpisu. –

Odpowiedz

2

Oryginalnie zaksięgowanych przez OP w kwestii samego

akcja index

kontroler przestrzeni powinna wyglądać następująco:

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 

i częściowym widokiem powinien wyglądać następująco:

<%= link_to 'See Space', space_path(object) %> 

+2

jeśli masz zamiar to zrobić, lepiej post dodaj post * społeczności * post i dodaj notatkę, że zostało to zrobione z postu PO. Zobacz [Najlepszy sposób na odpowiedź na pytania odpowiedział OP w pytaniu zamiast w odpowiedzi] (https://meta.stackexchange.com/q/108969). Przekształciłem ten wpis teraz. –

+0

@MartijnPieters: Dziękuję bardzo. –