Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:使用Decoder::Countries[:US].states,用美国各州和缩写填充选择列表_Ruby On Rails_Ruby_Arrays_Sorting_Hash - Fatal编程技术网

Ruby on rails Rails:使用Decoder::Countries[:US].states,用美国各州和缩写填充选择列表

Ruby on rails Rails:使用Decoder::Countries[:US].states,用美国各州和缩写填充选择列表,ruby-on-rails,ruby,arrays,sorting,hash,Ruby On Rails,Ruby,Arrays,Sorting,Hash,大家晚上好 我试图在rails视图中使用Decoder::Countries动态填充select_标记调用以生成列表。我的问题是,我无法得到我需要的格式的选项 语法: Decoder::Countries[:US] 返回美国各州的哈希值,格式为: "AL" => "Alabama" 因此,在视图中,这样做: select_tag :tag_name, options_for_select(Decoder::Countries[:US].states.sort) 生成如下所示的选择列表

大家晚上好

我试图在rails视图中使用Decoder::Countries动态填充select_标记调用以生成列表。我的问题是,我无法得到我需要的格式的选项

语法:

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>

AK
艾尔
等
我需要的是这样的输出:

<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会将散列转换为数组。我如何让它显示我需要的输出,或者我需要如何将其备份到控制器中


谢谢。

反转散列行吗

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