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] %>- 不显示任何内容
我错过了什么吗?.谢谢你的任何指示
<%- @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)
这样,您可以通过符号或字符串作为键来获取值.
| 归档时间: |
|
| 查看次数: |
1357 次 |
| 最近记录: |