Rails持久键值存储:仅在数据库中?

时间:2014-10-02 09:47:02

标签: ruby-on-rails

我设计了一个Rails'应用程序,在专用表中组织了大量模型(应该是这样)。

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

现在,我已经考虑过使用专用的数据库表来存储它们,但这看起来有点过分,因为这个settings_table会有很多字段,只有一个对象。

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

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

编辑:数据类型

几十个key->字符串值,如下所示:

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

1 个答案:

答案 0 :(得分:1)

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

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

在你的情况下如下 config_data = {page_title:" My Awesome Website", full_name:" James Bond", 职业:"秘密特工", facebook_account:" www.facebook.com/007"}

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