在Rails 3.2應用程序中,我有一個帶有文本列:data
的模型。在模型中我有:如何檢索序列化數據?
class Model
serialize :data, Hash
end
這是正確存儲數據,格式爲data:{"attr1"=>"foo", "attr2"=>"bar"....}
。
如果我想在節目視圖中顯示該節目,我可以做<%= @model.data %>
,並且整個散列都會被渲染。
但是如果我只需要呈現特定的屬性呢?這可能嗎?這似乎像他們可能工作
我試過幾種方法: - 生成undefined method 'attr1'
<%- @model.data[:attr1] %>
-
<%= @model.data.attr1 %>
無顯示
我缺少的東西? 。 感謝任何指針
doh!這就說得通了。謝謝!你能推薦任何有關HashWithIndifferentAccess的好信息嗎?從我的搜索中,它似乎並沒有很好覆蓋。它被廣泛使用,或可能被棄用?我喜歡語法的簡易性,但不希望被留下高和乾燥:) –
沒有什麼可以解釋的,因爲這個類具有'Hash',因爲它是父類,並且允許使用符號而不是密鑰。但是這個類被Rails廣泛使用。甚至更多:ActiveSupport將方法'with_indifferent_access'添加到'Hash'本身以返回'HashWithIndifferentAccess'實例。嘗試在你的任何視圖中放入'<%= params.class%>'並且看看你自己並不是在開玩笑) – jdoe