【问题标题】:Rails - best practice to store dictionaries (key value pairs)Rails - 存储字典的最佳实践(键值对)
【发布时间】:2015-09-24 06:07:38
【问题描述】:

我需要一些架构方面的建议。我更喜欢 java,但试图跟上 Ruby-on-rails 的速度。在我正在构建的应用程序中,我需要一个方便的地方来存储一些字典值,这些值将在应用程序的各个地方使用。这些通常是键值对 - 例如要在选择列表中使用的值列表。

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

我正在考虑以下选项:

  1. 在数据库中存储值 - 我有点不情愿,因为值不会经常更改。

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

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

具体的例子?假设有一个模型,它有一个名为“Type”的字段。类型可以是:['Type A', 'Type B', 'Type C'...]。当然,对于每种类型,我都希望拥有键和值。

对于您如何在应用中解决此问题的一些建议,我将不胜感激。

谢谢, 马切克

【问题讨论】:

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


    【解决方案1】:

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

    值列表是否可重复使用?那么带有初始化器的gemyaml 文件可能是一个不错的选择。

    它只是一个小列表并且不经常更改吗?然后你可能想考虑一个常数。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-09-27
        • 2017-02-10
        • 2015-02-15
        • 1970-01-01
        • 2010-10-05
        • 1970-01-01
        • 2023-04-03
        • 2012-06-26
        相关资源
        最近更新 更多