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

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

实现的思路也非常简单,我们可以建一张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()方法来读取保存的参数,绑定的相应搜索页面的表单中,让用户实现一键调取搜索参数,并可以在此基础上继续调整参数,然后选择保存或者另存为新的搜索。

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,268评论 19 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,295评论 4 61
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,999评论 6 342
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,589评论 25 709
  • 提起联想,大多数人想到的是柳传志和卖电脑。如果这样你就out了! 你所是知道的卖电脑的联想只是联想产业大版图中的一...
    FISHLI阅读 452评论 0 0