2010-03-01 2 views
5

Ich versuche Google Maps mit YM4R/GM zu meiner Seite hinzuzufügen. Als reguläres Submit mit form_tag funktioniert alles, also weiß ich, dass ich diesen Teil nicht durcheinander gebracht habe.Ruby on Rails, form_remote_tag und Google Maps API

Aber mit form_remote_tag Ich habe nichts in meinem Update div. Ich habe mit Rendering-Text getestet, damit die richtige Methode ausgeführt wird und YM4R/GM gibt Google Maps KML zurück. Aber die Karte wird nicht angezeigt.

Meine Form tag:

<% form_remote_tag(:url => {:controller => "home", :action => "search"}, :update => "map_div") do %> 


Die Suchmethode wie die Klage der Form angegeben:

def search 
    location = GeoKit::Geocoders::MultiGeocoder.geocode(params[:address]) 
    @map = GMap.new("map_div") 
    @map.control_init(:large_map => true,:map_type => true) 
    @map.center_zoom_init([location.lat,location.lng],11) 
    render :partial => 'map' 
end 

Ist es richtig, die div aktualisiert werden innerhalb eines Teil zu platzieren und dann das partielle rendern?

Übertreibe ich dies oder gehe ich falsch herum? Ich weiß, dass der YM4R/GM-Code ausgeführt wird, während ich die KML-Ausgabe von Google sehe. Und ich frage mich, ob das Problem mit der XML/KML-Antwort zusammenhängt? Interpretiert Rails die Antwort als XML statt als HTML?

Antwort

0

Ich arbeite jetzt gerade durch, aber ich habe das Gefühl, dass es mit Redirect vs Render zu tun hat. Sie sehen, dass die Karte teilweise funktioniert, wenn Sie die Seite aktualisieren. 'Render' erstellt nur die Ansicht neu. Wie auch immer, es ist etwas, das ich nicht gut erklären kann, aber es gibt a few blogs zum Thema. Entschuldigung, wenn das nicht wirklich eine Antwort ist. Ich arbeite auch daran, also poste ich, wenn ich etwas herausgefunden habe.

+0

einen Blick wert hier zu nehmen: http://guides.rubyonrails.org/layouts_and_rendering.html#using-render – digitalWestie