rails 6.1
,ruby 3.1.1
在表单 (
form_for
) 上,我的 options_for_select
字段中有一个使用 :sort_order
的下拉选择框。它需要一个哈希值,并且当前将颜色显示为选项文本,这对用户来说不是很直观。我可以切换它并将数字显示为选择文本,但这对用户来说仍然可能不是很有帮助。我想组合哈希项中的键/值并在选项文本中显示。
<% sort_hash = {'platinum' => 1, 'diamond' => 2, 'gold' => 3, 'silver' => 4, 'bronze' => 5} %>
<tr>
<td>Sort Order:</td>
<td>
<%= f.select(:sort_order, options_for_select(sort_hash), :prompt => "Select a Number") %>
</td>
</tr>
# this produces:
<select name="living_muay_thai_badge[sort_order]" id="living_muay_thai_badge_sort_order"><option value="">Select a Sort Order</option>
<option value="1">platinum</option>
<option value="2">diamond</option>
<option value="3">gold</option>
<option value="4">silver</option>
<option value="5">bronze</option>
</select>
我想做的是让它在选项文本中一起显示
key: value
,如下所示:
<select name="living_muay_thai_badge[sort_order]" id="living_muay_thai_badge_sort_order"><option value="">Select a Sort Order</option>
<option value="1">1: platinum</option>
<option value="2">2: diamond</option>
<option value="3">3: gold</option>
<option value="4">4:silver</option>
<option value="5">5: bronze</option>
</select>
我还没有在网上找到任何线程来显示如何使用我的哈希值在
options_for_select
中执行此操作,并且我尝试的任何操作都不起作用。如果这能让这更容易的话,我可以重新计算哈希值。
帮忙?
提前致谢。
您只需更改哈希即可:
sort_hash = {
"1: platinum" => 1,
"2: diamond" => 2,
"3: gold" => 3,
"4: silver" => 4,
"5: bronze" => 5
}
或动态更改它:
sort_hash = {
"platinum" => 1,
"diamond" => 2,
"gold" => 3,
"silver" => 4,
"bronze" => 5
}.each_with_object({}) do |(key, value), hash|
hash["#{value}: #{key}"] = value
end
#=> {"1: platinum"=>1, "2: diamond"=>2, "3: gold"=>3, "4: silver"=>4, "5: bronze"=>5}