Ruby on rails 分层设置的模式

Ruby on rails 分层设置的模式,ruby-on-rails,database,design-patterns,settings,hierarchy,Ruby On Rails,Database,Design Patterns,Settings,Hierarchy,假设软件具有设置层次结构: - system settings -- company settings --- department settings 一些父项设置是子项的默认设置,可以覆盖 在数据库中存储设置的最佳实践是什么?代码结构应该是什么样的 我正在考虑将设置存储为键/值,并将选项设置为默认值。许多设置被组合到一个引用其中一个层次结构的设置集。 在代码中,例如,我将从公司获取设置集,并搜索一个所需的设置。如果所需设置为空,我将在系统设置集中查找所需的默认设置 我非常感谢在这方面的任何建

假设软件具有设置层次结构:

- system settings
-- company settings
--- department settings
一些父项设置是子项的默认设置,可以覆盖

在数据库中存储设置的最佳实践是什么?代码结构应该是什么样的

我正在考虑将设置存储为键/值,并将选项设置为默认值。许多设置被组合到一个引用其中一个层次结构的设置集。 在代码中,例如,我将从公司获取设置集,并搜索一个所需的设置。如果所需设置为空,我将在系统设置集中查找所需的默认设置


我非常感谢在这方面的任何建议/模式。

这里可以做很多事情。这取决于您的实际设计和目标。行为点的一个可能解决方案是,当对象的状态改变时,它会改变对象的行为。我目前正在使用它来保持

子项的默认值,可以覆盖

取决于当前正在经历的状态。如果你想加载相应的集合,我认为这是一个很好的解决方案

但是如果你需要用创造性的方法

将设置存储在数据库中

这是唯一的出路。它将允许您创建多个类族的实例,并将提供一个接口,用于创建相关或从属对象族,而无需指定它们的具体类(因此您可以实现覆盖)

将帮助您创建简单和复合对象的树状结构,并表示整个层次结构的一部分。Composite允许客户端统一处理单个对象和对象的组合

我知道这是一个抽象的解决方案,但是概念可以很好地完成这项工作