Html 将哈希表中的数据显示到选择框中

Html 将哈希表中的数据显示到选择框中,html,ruby-on-rails,Html,Ruby On Rails,A有一个包含国家的哈希表,如下所示: @countries = {'United States' => 'US', 'France' => 'FR'} 我使用以下代码将其显示在选择框中: <%= select_tag 'countries', options_for_select(@countries.to_a) %> 关于如何使用相同的哈希表在选择框中显示数据,然后在显示页面上显示数据,您有什么想法吗?在哈希表上使用invert。它交换键

A有一个包含国家的哈希表,如下所示:

@countries = {'United States' => 'US', 'France' => 'FR'} 
我使用以下代码将其显示在选择框中:

<%= select_tag 'countries', 
            options_for_select(@countries.to_a) %>

关于如何使用相同的哈希表在选择框中显示数据,然后在显示页面上显示数据,您有什么想法吗?

在哈希表上使用
invert
。它交换键和值:

{:a => '1', :b => '2'}.invert
=> {"1"=>:a, "2"=>:b}
你的例子是:

<%=h @countries.invert[@offer.from_country] %>

在散列上使用
反转。它交换键和值:

{:a => '1', :b => '2'}.invert
=> {"1"=>:a, "2"=>:b}
你的例子是:

<%=h @countries.invert[@offer.from_country] %>

尝试将
标记的值属性设置为短国家名称,并将标记之间的文本设置为完整国家名称,如中所示


然后返回的值是简短的国家名称,但用户会在菜单中看到全名。

尝试将
标记的值属性设置为简短的国家名称,并将标记之间的文本设置为完整的国家名称,如中所示


然后返回的值是简短的国家名称,但用户会在菜单中看到全名。

您也可以使用数组而不是散列来执行此操作。这样做的好处是,您的选项将始终按照您在阵列中放置它们的顺序显示

@countries = [['United States', 'US'], ['France', 'FR']]
然后,您的select_标记使用数组:

<%= select_tag 'countries', options_for_select(@countries) %>

要输出数据,可以使用数组#:


您也可以使用数组而不是散列来执行此操作。这样做的好处是,您的选项将始终按照您在阵列中放置它们的顺序显示

@countries = [['United States', 'US'], ['France', 'FR']]
然后,您的select_标记使用数组:

<%= select_tag 'countries', options_for_select(@countries) %>

要输出数据,可以使用数组#: