Ruby on rails 如何检索序列化数据?
在Rails 3.2应用程序中,我有一个带有文本列的模型Ruby on rails 如何检索序列化数据?,ruby-on-rails,serialization,Ruby On Rails,Serialization,在Rails 3.2应用程序中,我有一个带有文本列的模型:data。在模型中,我有: class Model serialize :data, Hash end 这是以以下格式正确存储数据:{“attr1”=>“foo”,“attr2”=>“bar”…} 如果我想在show视图中显示它,我可以执行,然后呈现整个哈希 但是如果我只需要渲染一个特定的属性呢?这可能吗 我尝试了几种似乎可行的方法: -生成未定义的方法“attr1” -不显示任何内容 我错过什么了吗? . 谢谢你的指点你试过哈希键
:data
。在模型中,我有:
class Model
serialize :data, Hash
end
这是以以下格式正确存储数据:{“attr1”=>“foo”,“attr2”=>“bar”…}
如果我想在show视图中显示它,我可以执行
,然后呈现整个哈希
但是如果我只需要渲染一个特定的属性呢?这可能吗
我尝试了几种似乎可行的方法:
-生成未定义的方法“attr1”
-不显示任何内容
我错过什么了吗?
.
谢谢你的指点你试过哈希键的字符串格式吗
@model.data['attr1']
通过这种方式,您可以通过符号或字符串作为键获取值。doh!这是有道理的。谢谢你能推荐一些关于HashWithDisferenceAccess的好信息吗?从我的搜索结果来看,它似乎没有被很好地覆盖。它是否被广泛使用,或者可能被弃用?我喜欢语法的简单性,但不想被夸大:)没有什么要解释的,因为这个类的父类是
Hash
,允许您使用符号而不是键。但是这个类被Rails广泛使用。更重要的是:ActiveSupport在散列
本身中添加了方法和访问无关
,以返回散列和访问无关
实例。试着把
放在你的任何一个视图中,看看你自己,我不是在开玩笑)谢谢你,我应该试试这个,但我没有!我为额外的序列化信息将答案授予了jdoe,但我有一个加分。谢谢各位,我在发现jdoe后也立即对答案进行了加分。现在问题是+1
<%- @model.data[:attr1] %>
<%= @model.data["attr1"] %>
serialize :data, HashWithIndifferentAccess