将变量传递给partial的问题

时间:2010-01-12 07:07:53

标签: ruby-on-rails

我正在使用部分“infowindow”(app / view / tech / _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))

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

<%= debug(infowindow) %>

我得到哈希的完整输出。但是,当我尝试引用任何单个属性时:

<%= infowindow.summary %>

我为nil抛出了一个未定义的方法`summary':NilClass,即使该属性出现在整个哈希的调试输出中。为什么我只能访问整个哈希而不是部分中的各个属性?

编辑:返回哈希的顶部:

!ruby/object:Ticket 
attributes: 

如果有帮助,正在使用的模型是Ticket对象。

1 个答案:

答案 0 :(得分:2)

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

<%= infowindow["summary"] %>