在Rails中存储键值

时间:2013-12-03 17:35:37

标签: sql ruby-on-rails ruby database activerecord

我在开发中使用sqlite3,在生产中使用amazon rds(mysql2)来存储各种User记录。有一些静态内容,如faqchange logterms_and_conditions以及此类小文本。

  1. 内容包含html,很少更改。
  2. 存储在yaml似乎不太可行。
  3. 我在一个页面上显示所有数据,并且还会一次保存/更新所有数据(如果可能)。
  4. 我正在使用active admin作为后端。非技术管理员将存储/更新数据。我将提供ckeditor来更新数据。
  5. 我需要一种存储这些数据的方法。存储这些值的最佳方法是什么?我想到了以下几种方式:

    1. 将每个数据存储为单独的列(在一行中),例如faqchange_logterms and conditions等的列

      缺点是,如果管理员想要存储其他一些值,我必须创建一个单独的列。

    2. 将每个数据存储在两列中keyvalue

      faqchange_logterms_and_conditions可以在key列中,其各自的值在value列中。

      缺点是当我想一次更新所有内容时,我需要做几次更新查询。

    3. 使用ActiveRecord Store将所有内容存储在一个列中作为哈希值。

      缺点是,如果数据超出太多,我可能会在某些数据库中超出text字段的范围。另外,我认为它不够灵活。

1 个答案:

答案 0 :(得分:0)

  1. 您可以使用RailsSettings宝石。要使用activeadmin编辑这些值,您可以为所需的每个键设置一些attr_accessors。您有一个存储这些半静态数据的模型

  2. 您可以维护yaml文件来存储这些数据