使用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 数据库抽象层pdo
PDO是PHP数据对象(PHP Data Object)的缩写. pdo就是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,能够轻松地在不同数据库之间进行切换,使得数据库 ...
- SVN cleanup操作反复失败解决办法
今天在更新项目的时候遇到一个问题,按惯例要cleanup才能重新更新.但是很不幸,在cleanup的时候又遇到了问题! 1 svn cleanup failed–previous operati ...
- bs4_3select()
Finding an Element with the select() Method 调用select()方法从BeautifulSoup对象索取网页元素,并用CSS 选择器传递你寻找的元素 ...
- CodeForces 689B Mike and Shortcuts (BFS or 最短路)
题目链接:http://codeforces.com/problemset/problem/689/B 题目大意: 留坑 明天中秋~
- ecshop mobile 文件介绍
mobile手机端 1.common位置:include\apps\default\common\ function.php show_message 成功跳转页面 其他页面引用 show_m ...
- js获取某个ID的class名称
.HTML结构 <div id = "test" class="test_class">我的类名为test_class</div> &l ...
- php字符串常用算法--字符串加密解密
/** * 加密.解密字符串 * * @global string $db_hash * @global array $pwServer * @param $string 待处理字符串 * @para ...
- js其它
1.js的数组 * 什么是数组? - 使用变量,var m = 10; - java里面 ...
- Yii2.0 GridView 新增添加按钮
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'col ...
- 注册Com组件..
开发一些第三方的接口或者功能时..有时会需要接入对方提供Com组件..是一个dll文件.. 这个文件会在你的程序中引用.. 比如一个CMBChina.dll文件..这是招商银行的支付开发时必备的.. ...