2013-04-27 122 views
0

在erb模板中,我訪問一個元素(item.attributes[:Post]),它是一個散列。erb中的嵌套哈希表訪問

我通過打印

<%= (item.attributes[:Post]).class %> => Hash 

驗證了其I類可以調用它

<%= (item.attributes[:Post]).methods %> => works as expected 

一般方法,但我不能訪問任何哈希特定的功能。

<%= (item.attributes[:Post]).count %> => NoMethodError: undefined method `count' for nil:NilClass 

你知道爲什麼嗎?

回答

3

嘗試打印值爲p item.attributes[:Post])nilnilNilClass的一個實例,它沒有count方法。

nil.methods.include? :count #=>false 
+0

啊我明白我叫TWICE,曾經有一個Nil對象,曾經有一個數組!這就是爲什麼只有非常通用的功能工作... – nicolas 2013-04-27 14:35:25

+0

@nicolas看你提到的項目的錯誤。屬性[:Post]).class'應該是'Nilclass',但你如何得到'Hash'? :) – 2013-04-27 14:39:42

+0

因爲我被調用兩次,出於某種原因:一個與正確的對象,我設置有這樣的散列。和另一次我得到交出另一種類型的項目,從我不知道在哪裏,哪些不包含:Post – nicolas 2013-04-27 14:50:36