Rails - 存储词典的最佳实践(键值对)

时间:2015-07-06 22:45:03

标签: ruby-on-rails ruby ruby-on-rails-4 yaml

我需要一些建筑建议。我更喜欢java,但试图通过Ruby-on-rails加快速度。在我正在构建的应用程序中,我需要一个方便的位置来存储一些字典值,稍后将在应用程序的各个位置使用它们。这些通常是键值对 - 例如选择列表中使用的值列表。

主要目标是将此逻辑保留在应用程序的一个位置。

我正在考虑以下选项:

  1. 将值存储在数据库中 - 我很不情愿,因为价值不会经常发生变化。

  2. 将所有值放在一个类中。在JAVA中,我在一个持有此值的类中有一些静态属性(例如,调用Utils.getStates()将返回状态列表)。怎么做ruby方式?

  3. 让一些带有值的.yml文件 - 从值中读取。怎么做?我想我必须解析初始化程序中的文件,但有没有教程如何做?

  4. 精确的例子?让我们说有一个模型有一个名为" Type"的字段。类型可以是:['Type A', 'Type B', 'Type C'...]。当然,对于每种类型,我都希望拥有关键和价值。

    我很欣赏您在应用中如何解决此问题的一些建议。

    谢谢, Maciek

2 个答案:

答案 0 :(得分:2)

列表多久更改一次?开发人员每次更改值(更新代码,重新部署应用程序)时是否可以接受?如果答案为否:将值存储在数据库中。

值列表是否可重复使用?然后,带有初始化程序的gemyaml文件可能是个不错的选择。

列表是否很小并且不经常更改?那么你可能想要考虑一个常数。

答案 1 :(得分:0)

我认为在Rails中,任何在运行时都会发生变化且需要持久保存的数据通常会存储在数据库中。我认为这将是“铁路方式”。您可以将数据保存到yaml或json文件,但这不会遵循在rails中常见的MVC模式的正常流程