如何检索序列化数据?

时间:2012-05-06 11:01:35

标签: ruby-on-rails serialization

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

class Model
  serialize :data, Hash
end

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

如果我想在节目视图中显示它,我可以<%= @model.data %>,并渲染整个散列。

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

我尝试了几种似乎可行的方法:

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

我错过了什么吗? 。 感谢您的任何指示

2 个答案:

答案 0 :(得分:8)

<%- @model.data[:attr1] %>

替换为:

<%= @model.data["attr1"] %>

注意:开头<%=。您错误地使用了<%-

UPD:

我建议使用HashWithIndifferentAccess

serialize :data, HashWithIndifferentAccess

通过这种方式,您可以通过符号或字符串作为键来获取值。

答案 1 :(得分:2)

您是否尝试过Hash密钥的字符串格式?

 @model.data['attr1']