2010-01-12 85 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