Ruby on Rails,form_remote_tag和Google Maps API

时间:2010-03-01 19:24:09

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

我正在尝试使用YM4R / GM将Google地图添加到我的页面。作为使用form_tag的常规提交,一切正常,所以我知道我并没有弄乱那部分。

但是使用form_remote_tag我的更新div中没有​​任何内容。我测试了渲染文本,因此正在执行正确的方法,YM4R / GM正在返回Google Maps KML。但地图没有显示。

我的表格标签:

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


指定为表单操作的搜索方法:

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

将div更新为部分内部是否正确,然后呈现该部分?

我是否过于复杂,或以错误的方式进行?我知道YM4R / GM代码正在执行,因为我看到了谷歌的KML输出。我想知道问题是否与XML / KML响应有关? Rails是否将响应解释为XML而不是HTML?

2 个答案:

答案 0 :(得分:3)

Fyi,我刚刚发布了新版本的gmaps4rails。它基于Rails 3并使用Google maps API V3:

https://github.com/apneadiving/Google-Maps-for-Rails

答案 1 :(得分:0)

我正在解决这个问题,但我感觉这与Redirect vs Render有关。刷新页面时,您会看到地图在部分没问题。 '渲染'只是重新创建视图。无论如何,这是我不太擅长解释这个问题,但在这个主题上有a few blogs。如果这不是真正的答案,请道歉。我也在努力工作,所以当我想出办法时,我会发布。