2013-05-08 87 views
1

哪裏是定義的最佳地點,以及如何存儲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 

有沒有更好的方法來做到這一點?我有幾十個帶有選項的字段,不想爲每個字段創建單獨的表。

回答

0

我的解決辦法是:

  • 使用VARCHAR答案存儲即從以上 '優秀', '良好'。這是我可以在原始形式和數字值中看到的實際有意義的數據。
  • 在我的模型中有選項數組。訂單維持,如果我重新整理他們的數字並不重要:

    PHYSICAL_CONDITIONS = [ :優秀, :好 ]

  • 活動記錄模式轉換的情況下爲每個的選項組選項集。在上面的案例中,我稱之爲:physical_condition_options

  • 有每個翻譯爲即一個子集excellent: "Excellent"
  • 如果我需要轉換這允許在模型上進行多項選擇(複選框)(發生多次),我只是刪除該子集並使它模型的一部分。遷移更簡單,而不必翻譯數字值。
  • 具有助手將它傳遞給現場

    localized_options當翻譯這些選項(大廈:: PHYSICAL_CONDITIONS, 「activerecord.attributes.building.physical_condition_options。」)

這似乎是這是存儲數據並使其易於翻譯的最佳方式。

相關問題