【问题标题】:Rails persistent key-value storage : Only in database?Rails 持久键值存储:仅在数据库中?
【发布时间】:2014-11-27 07:01:06
【问题描述】:

我设计了一个 Rails 应用程序,其中有大量模型组织在专用表中(应该如此)。

最近,我一直在尝试将我的应用程序(标题等)的硬编码参数提取到 YAML 配置文件中。虽然我对这种方法很满意,但问题是我无法通过应用程序即时修改它们,只能通过文本编辑器。

现在,我考虑使用专用的数据库表来存储它们,但这似乎有点过头了,因为这个 settings_table 将有很多字段,而且只有一个对象。

基本上,我正在寻找的是一个简单的长期(如永远)键值存储。 Reddis 服务器显然是另一种矫枉过正。似乎 ActiveRecord::Cache::Store 可能是一个解决方案,尽管我不确定长期存在的部分。

“真正的”Rails 实现这一目标的方式是什么?

编辑:数据类型

几十个键->字符串值,像这样:

page_title: "My Awesome Website"
full_name: "James Bond"
occupation: "Secret Agent"
facebook_account: "www.facebook.com/007"

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    您可以只使用一列并以序列化格式存储数据,而不是为每个键设置一列。有了这个,即使将来你想添加更多数据也不会有任何问题。

    http://apidock.com/rails/ActiveRecord/AttributeMethods/Serialization/ClassMethods/serialize 会给你一些参考,否则你也可以使用 to_json 和 JSON.parse 方法,将数据视为哈希。

    你的情况如下 config_data = {page_title: "我的网站", 全名:“詹姆斯邦德”, 职业:“特工”, facebook_account: "www.facebook.com/007"}

    config_data.to_json 可以直接存入数据库,用于读取 JSON.parse(dbvalue)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-07
      • 1970-01-01
      相关资源
      最近更新 更多