2011-07-27 105 views
1

我的設置:Rails的3.0.9,1.9.2紅寶石Rails的選擇的輔助方法

我有一個全局常量定義

TYPES = { "visa" => "Visa", "master" => "MasterCard" } 

我想顛倒值的選擇方法,我知道它聽起來很愚蠢,但我的代碼的另一部分需要此功能,所以我試圖弄清楚它是否可能。這裏就是我有這麼遠,但沒有奏效

<%= f.select :card_type, TYPES.each { |key, value| [value, key] } %> 

回答

1

使用invert法內置到Hash

TYPES = { "visa" => "Visa", "master" => "MasterCard" } 

TYPES.invert 
# => {"Visa"=>"visa", "MasterCard"=>"master"} 

所以:

<%= f.select :card_type, TYPES.invert %> 

注:

  1. 爲什麼不使用符號代替stri ngs for the key .. :master而不是"master"
  2. 原始TYPES的值將用作invert'ed Hash的密鑰,因此請確保您的值都是唯一的。
+0

D'oh!我怎麼錯過了?我甚至在我的問題LOL中推斷它。 – Bob