2010-01-12 98 views
0

我使用的部分的“信息窗口”(应用程序/视图/技术/ _infowindow.html.erb),使用填充了谷歌地图标记:问题与通过变量的局部

new_marker = GMarker.new([t.lat, t.lng], :icon => icon, :title => t.summary, :info_window => (render_to_string :partial => "infowindow", :object => t)) 

但我m得到一个非常奇怪的错误。当我简单地说:

<%= debug(infowindow) %> 

我得到散列的完整输出。但是,当我尝试引用任何个人的属性,如:

<%= infowindow.summary %> 

我抛出了零一个未定义的方法`总结”:NilClass即使属性在调试输出整个哈希显示出来。为什么我只能访问整个散列而不访问部分中的单个属性?

编辑:返回的哈希的顶部:

!ruby/object:Ticket 
attributes: 

该模型所使用的票是对象是否有帮助。

回答

2

你要做的就是调用infowindow哈希上的方法summary,该哈希不存在于哈希类中,因此也是错误。要访问个别散列元素,请尝试使用

<%= infowindow["summary"] %> 
+0

如果插件编写器很聪明,它也可以作为一种方法提供。 – 2010-01-12 08:52:45

+0

我仍然收到一个错误,现在它是一个无对象...被传递的变量是一个Ticket对象,例如一个汇总列。如果infowindow是Ticket对象的局部变量,为什么我不能在相同的model.attribute语法中使用infowindow.summary? – Kevin 2010-01-12 09:12:05

+0

你有没有取得进展的问题...我有一个类似的问题与RSpec +部分+视图,http://stackoverflow.com/questions/4695183/rspec2-partial-view-gives-nilnilclass-why – poseid 2011-01-21 14:19:20