哪里可以定义Rails选择/收音机选项以及如何存储

问题描述:

哪里是定义的最佳地点,以及如何存储rails的选择/收音机选项(以及放置翻译的位置)?哪里可以定义Rails选择/收音机选项以及如何存储

现在我正在模型中定义一个Hash并将整数键存储在记录中。我还将翻译作为'属性'放在模型翻译中,因为它似乎将它们很好地组合在一起。即

PHYSICAL_CONDITIONS = { 
    1 => "activerecord.attributes.building.condition_excellent", 
    2 => "activerecord.attributes.building.condition_good", 
    3 => "activerecord.attributes.building.condition_average_for_age", 
    4 => "activerecord.attributes.building.condition_fair", 
    5 => "activerecord.attributes.building.condition_poor" 
}.freeze 

有没有更好的方法来做到这一点?我有几十个带有选项的字段,不想为每个字段创建单独的表。

我的解决办法是:

  • 使用VARCHAR答案存储即从以上 '优秀', '良好'。这是我可以在原始形式和数字值中看到的实际有意义的数据。
  • 在我的模型中有选项数组。订单维持,如果我重新整理他们的数字并不重要:

    PHYSICAL_CONDITIONS = [ :优秀, :好 ]

  • 活动记录模式转换的情况下为每个的选项组选项集。在上面的案例中,我称之为:physical_condition_options

  • 有每个翻译为即一个子集excellent: "Excellent"
  • 如果我需要转换这允许在模型上进行多项选择(复选框)(发生多次),我只是删除该子集并使它模型的一部分。迁移更简单,而不必翻译数字值。
  • 具有助手将它传递给现场

    localized_options当翻译这些选项(大厦:: PHYSICAL_CONDITIONS, “activerecord.attributes.building.physical_condition_options。”)

这似乎是这是存储数据并使其易于翻译的最佳方式。