3

这是我的问题的一些背景:

我在 Snow Leopard 我安装了 RVM(使用 ruby​​1.9.2-head 安装)我正在使用 rails3 我使用这个http://github.com/guilleiguaran/ym4r_gm安装了 ym4r (并按照教程进行操作)

无论如何,我将这些添加到我的控制器中:

@map = GMap.new("map_div")
@map.control_init(:large_map => true,:map_type => true)
@map.center_zoom_init([75.5,-42.56],4)
@map.overlay_init(GMarker.new([75.6,-42.467],:title => "Hello", :info_window => "Info! Info!"))

那么这些在我看来:

Test <%= raw(GMap.header) %>  <%= raw(@map.to_html) %>  <%= raw(@map.div(:width => 600, :height => 400)) %>  

实际上我正在使用haml(这有关系吗?)

Test
= raw(GMap.header)
- unless @map.blank?
  = raw(@map.to_html)
#map{:style => "width: 600px; height: 400px"}

问题是我不断得到一个

显示 /Users/eumir/rails_apps/evo-lux/app/views/layouts/_map.html.haml 其中第 11 行提出:

无法将 Ym4r::GmPlugin::Variable 转换为字符串(Ym4r::GmPlugin::Variable#to_str 给出 Ym4r::GmPlugin::Variable)

提取的源代码(第 11 行附近):

9: 测试 10: = raw(GMap.header) 11: = raw(@map.to_html) 12: = raw(@map.div(:width => 600, :height => 400))

这很奇怪。我无法用调试器仔细检查(这完全是另一个错误......我的 Rails 找不到 ruby​​-debugger)

所以我真的有点难过。有什么帮助吗?

4

2 回答 2

11

插件的 mapping.rb 中的类变量中需要添加以下函数。

def to_str @variable + ";" 结尾

Array#* 在 to_html 函数中被调用,Ruby 1.9.2 使用 to_str 而不是 to_s 来连接值。

于 2010-09-04T19:44:37.573 回答
1

好的应该有RTFM。一些发现:

  • 该插件是为现已弃用的 google maps v2 API 制作的
  • 插件的 to_html 函数有点偏离,因为 html 变量的 init 变量是一个变量数组 - 这些变量由字符串连接。
于 2010-07-25T10:49:50.520 回答