如何检索序列化数据?

And*_*vey 3 serialization ruby-on-rails

在Rails 3.2应用程序中,我有一个带有文本列的模型:data.在模型中我有:

class Model
  serialize :data, Hash
end
Run Code Online (Sandbox Code Playgroud)

这是以格式正确存储数据data:{"attr1"=>"foo", "attr2"=>"bar"....}.

如果我想在show视图中显示它,我可以做<%= @model.data %>,并呈现整个哈希.

但是如果我只需要渲染一个特定属性呢?这可能吗?

我尝试过几种似乎可以工作的方法:

<%= @model.data.attr1 %>- 生成undefined method 'attr1' <%- @model.data[:attr1] %>- 不显示任何内容

我错过了什么吗?.谢谢你的任何指示

jdo*_*doe 8

<%- @model.data[:attr1] %>
Run Code Online (Sandbox Code Playgroud)

用...来代替:

<%= @model.data["attr1"] %>
Run Code Online (Sandbox Code Playgroud)

注意:<%=开头.你<%-误用了.

UPD:

我建议使用HashWithIndifferentAccess:

serialize :data, HashWithIndifferentAccess
Run Code Online (Sandbox Code Playgroud)

这样,您可以通过符号或字符串作为键来获取值.