现在,我有以下application_helper.rb
方法:
module ApplicationHelper
def grades_k_5
[
['',],
['Preschool', -1],
['Kindergarten', 0],
['First grade', 1],
['Second grade', 2],
['Third grade', 3],
['Fourth grade', 4],
['Fifth grade', 5],
]
end
到目前为止,我只在视图中使用它(填充下拉选择器),但现在我也想在我的一个模型中使用它。我如何将该数组放在某处,以便我可以从这个辅助方法中引用它,还有我在模型中包含的另一种方法?最终,如果我需要修改结构而不必去多种方法,那么我正在寻找的是改变这一点的地方(DRY)。
答案 0 :(得分:2)
这样的静态数据存在许多选项。最简单的方法是类方法。
class StaticData
def self.grades_k_5
[
['',],
['Preschool', -1],
['Kindergarten', 0],
['First grade', 1],
['Second grade', 2],
['Third grade', 3],
['Fourth grade', 4],
['Fifth grade', 5],
]
end
end
# then
StaticData.grades_k_5
您还可以将其放入YAML文件中,并使用一段逻辑来解析该文件并为您提供数据。但它有点复杂,可能不需要你的情况。