Rails:使用Decoder :: Countries [:US] .states填充包含美国州和缩写的选择列表

时间:2011-01-14 21:56:18

标签: ruby-on-rails ruby arrays sorting hash

晚上好。

我正在尝试使用Decoder :: Countries在我的rails视图中动态填充select_tag调用以生成列表。我的问题是我无法选择以我需要的格式出现。

语法:

Decoder::Countries[:US]

以格式:

返回美国州的哈希值
"AL" => "Alabama"

所以在视图中,这样做:

select_tag :tag_name, options_for_select(Decoder::Countries[:US].states.sort)

生成一个如下所示的选择列表:

<select name="tag_name" id="tag_name">
  <option value="Alaska">AK</option>
  <option value="Alabama">AL</option>
  etc...

我需要的是这样输出:

<select name="tag_name" id="tag_name">
  <option value="al">Alaska</option>

现在,我知道附加.sort会将哈希变成数组。如何让它显示我需要的输出,或者我需要将它备份到控制器中吗?

感谢。

1 个答案:

答案 0 :(得分:4)

反转哈希工作吗?

select_tag :tag_name, options_for_select(Decoder::Countries[:US].states.invert)