哪里可以定义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。”)
这似乎是这是存储数据并使其易于翻译的最佳方式。