【问题标题】:Ruby on Rails: Handling global constants?Ruby on Rails:处理全局常量?
【发布时间】:2021-05-18 17:59:42
【问题描述】:

我正在开发一个带有 React 前端的 Ruby on Rails 应用程序。

我目前有后端和前端都需要的常量。为了避免这些分歧并能够在一个地方管理它们,我们将它们存储在后端的config/initializer 文件中。我们有一个 ConstantsController 将这些服务提供给前端。

到目前为止,这一切都很好,但现在,一些常量已经过时了。例如。对于color 常量,我们不再有一些颜色可用并且不想在前端显示它们。但是,如果我们更改常量(删除未使用的常量),我们将破坏一些验证。

现在我只能想到有一个Active 常量集发送到前端,它是Full 常量集的子集。否则,我想在带有禁用字段的表中定义常量,并为每个常量设置一个模型。在这种情况下,我们只会在前端显示active 常量

【问题讨论】:

  • 不清楚问题是什么。没有一种“正确”的方式——如果一个“旧”值可以从前端发回(例如,在编辑过程中)而不被纠正为一个“ok”值,你仍然会有验证错误,这意味着需要运行某种回填/修复工作。最有意义的是取决于上下文。
  • 您能解释一下“我们将破坏一些验证错误”的意思吗?
  • 我可能会尝试为您尝试做的事情找到其他词 - “全局”和“常量”在编程中有一些非常具体的含义。如果您将其改写为例如“在前端和后端使用的应用程序范围设置”,这使得实际讨论不同可能的解决方案变得更加容易,这些解决方案可以是 YAML/JSON 文件、数据库表或两个或类似的任何东西内存缓存。
  • 正如@DaveNewton 所指出的,实际上并没有一种“正确”的方式来处理配置,这个问题可能会因为它主要基于意见而被关闭。您可能想对不同的开发人员如何解决该问题进行一些研究,并可能在reddit.com/r/rubyonrails 等开放讨论的论坛上提出问题。

标签: ruby-on-rails reactjs ruby activerecord


【解决方案1】:

我意识到任何我所说的常数如果它在变化,它就不是常数。这些应该作为存储在表中的设置/类型/版本来处理

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    相关资源
    最近更新 更多