美文网首页
存储和读取参数(数组或哈希)

存储和读取参数(数组或哈希)

作者: TCJ | 来源:发表于2015-06-22 10:31 被阅读137次

在项目开发中,可能会出现这样的需求:用户需要保存自己的搜索选项,例如一个高级搜索页面,特定用户会用特定的多个参数组合去搜索自己想要的内容,然后每次调用都要重新输入这些参数显然会严重降低用户体验。此时就需要将用户的参数保存起来,供其以后随时调用。

实现的思路也非常简单,我们可以建一张user_searchs表,里面存储用户的id,保存搜索的类型search_type(用于支持保存不同页面的高级搜索)、保存的名称title(方便用户自己识别)以及保存搜索参数的conditions字段。

要实现保存搜索参数,rails已经提供了非常简便成熟的方法,根本不需要开发者自己再手动写这个功能。

比如一个使用ransack的项目信息高级搜索页面,ransack传递到action的高级搜索参数是params[:q](典型的哈希键值对),常规可以有两种方法来保存这个参数
1.YAML: YAML.dump(params[:q]) YAML.load(params[:q])
2.JSON : params[:q].to_json JSON.parse(params[:q])
目前比较主流还是JSON。

我们可以轻松惬意地使用.to_json方法将params[:q]保存进数据库,然后使用JSON.parse()方法来读取保存的参数,绑定的相应搜索页面的表单中,让用户实现一键调取搜索参数,并可以在此基础上继续调整参数,然后选择保存或者另存为新的搜索。

本书叙述的虽然是一个非常简便的小方法,但其实用性是非常高的!

相关文章

  • 存储和读取参数(数组或哈希)

    在项目开发中,可能会出现这样的需求:用户需要保存自己的搜索选项,例如一个高级搜索页面,特定用户会用特定的多个参数组...

  • 哈希表

    数据结构之一 :哈希表(或称散列表)哈希表是数组支持按照下标随机访问数据的特性(数组的一种扩展)哈希表存储以键值形...

  • Day 9什么是哈希表

    哈希表存储了键和值组成的数据,通过计算键的哈希值,再将其mod存储数据的数组的长度进行键值对的存储,并使用链表存储...

  • 博览网/boolan-STL与泛型编程-第3周笔记文章

    1、hashtable 哈希表和数组、以及链表的对比: (1).数组的特点:寻址容易,插入和删除困难;数组存储连续...

  • 存储引擎的底层数据结构

    1. 哈希存储引擎 介绍 哈希存储引擎是哈希表的持久化实现,支持增、删、改以及随机读取的操作。但不支持顺序扫描。一...

  • localStorage存储和读取数组

    存储: 读取:

  • localStorage存储和读取数组

    存储: 读取:

  • ArrayMap源码解析

    ArrayMap 使用2个数组。它的对象实例内部有用来存储对象的 Object[] mArray 和 存储哈希值的...

  • HashMap类简介

    1 基本定义 数据结构 数据结构数组链表红黑树用途存储键值对。数组下标为键的哈希值解决哈希冲突解决哈希冲突 定义参...

  • MySQL系列学习笔记 (三)

    索引的模型 哈希表 哈希表是以键值对数据结构存储的,哈希的思路是将值放在数组中,通过对 key 进行运算得到数组的...

网友评论

      本文标题:存储和读取参数(数组或哈希)

      本文链接:https://www.haomeiwen.com/subject/gknsqttx.html