使用text存储hash类型的数据 Use text filed to store the hash map
在component表里用text类型的字段存储hash数据
(1)新建字段 ,这是migration的内容
class AddHintsToComponents < ActiveRecord::Migration[5.0]
def change
add_column :components, :hints, :text
end
end
(2)controller
def update
if @component.update!(component_params)
redirect_to @component, notice: 'Component was successfully updated.'
else
render :error
end
end
def component_params
params.require(:component).permit(:release_id,
:remark, component_ids: [], hints: [:left, :mid, :right])
end
(3)model
class Component < ApplicationRecord
serialize :hints def after_initialize
self.hints ||= {}
end
(4)_component.html.erb
<td>
left:<%= component.hints["left"] %> |
mid:<%= component.hints["mid"] %> |
right:<%= component.hints["right"] %>
</td
(5)_form.html.erb
<%= f.fields_for :hints do |h| %>
<div class="form-group">
<%= f.label 'hints left', class: 'col-sm-2 control-label' %>
<div class="col-sm-4">
<%= h.text_field :left, class: 'form-control',
value: (@component.hints && @component.hints.key?("left") ? @component.hints["left"] : "") %>
</div>
</div> <div class="form-group">
<%= f.label 'hints mid', class: 'col-sm-2 control-label' %>
<div class="col-sm-4">
<%= h.text_field :mid, class: 'form-control',
value: (@component.hints && @component.hints.key?("mid") ? @component.hints["mid"] : "") %>
</div>
</div> <div class="form-group">
<%= f.label 'hints right', class: 'col-sm-2 control-label' %>
<div class="col-sm-4">
<%= h.text_field :right, class: 'form-control',
value: (@component.hints && @component.hints.key?("right") ? @component.hints["right"] : "") %>
</div>
</div>
<% end %>
参考资料
http://vladexologija.blogspot.com/2012/12/rails-attribute-serialization_18.html
http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters
使用text存储hash类型的数据 Use text filed to store the hash map的更多相关文章
- 如何使用Cassandra来存储time-series类型的数据
Cassandra非常适合存储时序类型的数据,本文我们将使用一个气象站的例子,该气象站每分钟需要存储一条温度数据. 一.方案1,每个设备占用一行 这个方案的思路就是给每个数据源创建一行 ...
- Redis 笔记与总结2 String 类型和 Hash 类型
Linux 版本信息: cat /etc/issue 或cat /etc/redhat-release(Linux查看版本当前操作系统发行版信息) CentOS release 6.6 (Final) ...
- Perl中的hash类型
hash类型 hash类型也称为字典.关联数组.映射(map)等等,其实它们都是同一种东西:键值对.每一个Key对应一个Value. hash会将key/value散列后,按序放进hash桶.散列后的 ...
- Redis中Value使用hash类型的效率是普通String的两倍
什么Redis? 点击这里 最近要开发的一个项目是分布式缓存组件,解决参数缓存高效获取的问题.参数达到了500万级别,刚刚开始了解Redis.做设计的时候考虑到Value使用哪种类型的问题? 主要面临 ...
- redis之Hash类型常用方法总结
redis之Hash类型常用方法总结 格式: 存--HMGET key field [field ...] 取--HMGET key field [field ...] M:表示能取多个值,many ...
- Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析
Hashtable 是一个很常见的数据结构类型,前段时间阿里的面试官说只要搞懂了HashTable,hashMap,HashSet,treeMap,treeSet这几个数据结构,阿里的数据结构面试没问 ...
- 直接在安装了redis的Linux机器上操作redis数据存储类型--hash类型
一.概述: 我们可以将Redis中的Hashes类型看成具有String Key和String Value的map容器.所以该类型非常适合于存储值对象的信息.如Username.Password和 ...
- 关于InnoDB存储引擎text和blob类型的优化
我们在数据库优化的时候,看到一些表在设计上使用了text或者blob的字段,如果单表的存储空间达到了近上百G或者大几十G,这种情况再去改变和优化就非常难了 一.简介 为了清楚大字段对性能的影响,我们有 ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(散列Hash类型数据操作)
本文版权归博客园和作者本人共同所有,转载和爬虫请注明本系列分享地址:http://www.cnblogs.com/tdws/p/5815735.html 上一篇文章的不合理之处,已经有所修改. 今天分 ...
随机推荐
- PHP获取当前日期和时间及格式化方法参数
使用函式 date() 实现 <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 相关时间 ...
- DRY原则
DRY--Don't Repeat Yourself Principle,直译为"不要重复自己"原则 DRY简而言之,就是不要写重复的代码.原则本身很简单,但是,对于OOAD(面向 ...
- MongoDb学习1
目标框架必须是 4.5以上,最新MongoDb.Driver 是 2.2.4(与MongoDb.Driver 的1.x版本差别较大) 官方文档 http://mongodb.github.io/mon ...
- 《CSS3实战》读书笔记 第2章 层叠样式表(CSS)
## 层叠样式表 本章将阐述CSS的基本规则. ### 解构CSS 所谓CSS,由选择器(selector)和声明块(declaration block)组成.再进一步细分,每个声明包括了属性和值. ...
- Unity Serialization
http://forum.unity3d.com/threads/serialization-best-practices-megapost.155352/ http://docs.unity3d.c ...
- php基础语句2
计算一个月有多少天 $count = date("t",strtotime("2014-09-01")); // 一个月有多少天
- Shader
Shader的学习方法总结 http://www.cnblogs.com/Esfog/p/How_To_Learn_Shader.html [Shader 着色器]学习shader之前必须知道的东西之 ...
- ElasticSearch之一——索引
ElasticSearch索引 ElasticSearch 是一个分布式可扩展的实时搜索引擎,它建立在开源搜索引擎框架Apache Lucene基础上.ElasticSearch 不但包括了全文搜索功 ...
- Redis 安装,主从配置及Sentinel配置自动Failover
1.安装redis 首页地址:http://redis.io/ 下载地址:http://download.redis.io/ 下载最新的源码包 tar -zxvf redis-stable.tar.g ...
- Node对象属性
1.Node对象属性一 * nodeName * nodeType * nodeValue * 使用dom解析html时候,需要ht ...