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

我在雪豹上
我安装了 RVM(使用 ruby​​1.9.2-head 安装)
我正在使用 rails3
我使用这个 http://github.com/guilleiguaran/ym4r_gm 安装了 ym4r(并按照教程)

无论如何,我将这些添加到我的 Controller 中:

@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:=原始(GMap.header)
11: = 原始(@map.to_html)
12: = raw(@map.div(:width => 600, :height => 400))

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

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

最佳答案

需要在插件的mapping.rb中的类Variable中添加如下函数。

def to_str
@变量 + ";"
结尾

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

关于ruby - Ym4r 无法转换为 rails3 的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3326410/

10-08 23:13