Problem with RJS

Hi,

I am trying to do a rails application that uses google map to allow
users to specify longitude and latitude and then the google map should
be updated to show that location which was specified.

I am using observe_field on the text field like this:

    <%= observe_field 'geo_loc_cords',
    :url => {:action => :update_map, :form_authenticity_token =>

form_authenticity_token},
:update => :map,
:with => ‘“cords=”+element.value’,
:loading => “Element.show(‘spinner’)”,
:complete => “Element.hide(‘spinner’)” %>

and my map div looks like this:

<%= @map.div(:width => 400, :height => 300) %>

and in the update_map action I have this (hardcoded the coordinates for
now):

def update_map()
latitude = 43.023849
longitude = -77.682053
@map = Variable.new(“map”)

point = GLatLng.new([latitude, longitude])
@marker = GMarker.new(point, {:title => "Site:", :info_window =>

“Site:”,
:draggable => true})
respond_to do |format|
format.html
format.js
end
end

And my rjs template simply looks like this:

page << @map.clear_overlays
page << @map.add_overlay(@marker)

Yet the result is simply outputted on the page as:

try { map.clearOverlays(); map.addOverlay(addInfoWindowToMarker(new
GMarker(new GLatLng(43.023849,-77.682053),{title : “Site:”,draggable :
true}),“Site:”,{})); } catch (e) { alert(‘RJS error:\n\n’ +
e.toString());
alert(‘map.clearOverlays();\nmap.addOverlay(addInfoWindowToMarker(new
GMarker(new GLatLng(43.023849,-77.682053),{title : “Site:”,draggable :
true}),“Site:”,{}));’); throw e }

What am I doing wrong to make the resulting javascript outputted on the
page rather than interpreted as javascript?

Shahin K. wrote:

Hi,

I am trying to do a rails application that uses google map to allow
users to specify longitude and latitude and then the google map should
be updated to show that location which was specified.

I am using observe_field on the text field like this:

    <%= observe_field 'geo_loc_cords',
    :url => {:action => :update_map, :form_authenticity_token =>

form_authenticity_token},
:update => :map,
:with => ‘“cords=”+element.value’,
:loading => “Element.show(‘spinner’)”,
:complete => “Element.hide(‘spinner’)” %>

and my map div looks like this:

<%= @map.div(:width => 400, :height => 300) %>

.
.
.

What am I doing wrong to make the resulting javascript outputted on the
page rather than interpreted as javascript?

Solved it, just needed to remove the :update => :map in observe field.
:slight_smile: