我有一些数据想要存储在我的 Rails 应用程序的某个位置,因为我使用它来生成表单字段、检查提交的表单以确保其值有效等。基本上,我希望数据在一个位置,因为我利用它在几个地方。
以前,我initialize
在控制器中定义一个方法并在该方法中初始化实例变量,例如@graph_types = ['bar', 'line']
. 这似乎是一个坏主意,因为这实际上是全部initialize
用于(初始化这些值)并且实例变量可以稍后更改,这是我不想要的。
现在,我在控制器中的任何方法之外定义常量,就在过滤器之后的顶部,然后冻结它们,例如GraphTypes = ['bar', 'line'].freeze
.
我不想将这些数据存储在配置文件中,因为那样我就必须跟踪一个额外的文件,读入文件并解析它等等。我不想将这些数据存储在数据库中,因为那样似乎有点矫枉过正;我不需要做任何疯狂的 LEFT OUTER JOIN 类型的查询,将可用的图形类型与我的另一个常量相结合,比如Themes = ['Keynote', 'Odeo', '37 Signals', 'Rails Keynote'].freeze
. 我不想将数据存储在 environment.rb 中,因为该数据仅与特定控制器有关。
考虑到这一切,我是否要采用这种“Ruby 方式”?