选择标签,指定所选选项(或将数组元素移动到索引 0)

2024-05-12

假设我正在查询水果列表,然后仅将水果的 ID 和名称收集到 @fruit 中。

[32, "apple"],
[8, "bannana"],
[10, "cantelope"],
[11, "grape"],
[15, "orange"],
[41, "peach"],
[22, "watermelon"]

@fruit 正在 Select 帮助器中使用。 @fruit 索引 0 处的“apple”将是 select 的选定值(第一个选项)。这是一个虚构的示例,但默认情况下我总是通过名称(而不是通过 ID)知道“orange”是什么。我需要“橙色”作为选择标签的选定值(第一个选项)。

":prompt => 'orange'" 只是在选择中添加了“orange”的第二个实例。到目前为止,我在谷歌上发现的所有内容似乎都是关于向列表中添加额外的值或空白。

由于数组的索引 0 始终成为选定值(如果选择助手中没有使用提示或空白),有没有办法我可以找到包含名称“orange”的索引(@fruit[x].name == 'orange'),并将其移动到索引 0,同时保留列表其余部分中现有的 alpha 排序?所以,@fruit 数组看起来像:

@fruit[0]    [15, "orange"],
@fruit[1]    [32, "apple"],
@fruit[2]    [8, "bannana"],
@fruit[3]    [10, "cantelope"],
@fruit[4]    [11, "grape"],
@fruit[5]    [41, "peach"],
@fruit[6]    [22, "watermelon"]

我现在唯一能想到的就是遍历@fruit,如果找到“orange”,则将其添加到新数组中。然后再次遍历 @fruit 数组并添加任何名称不为“orange”的内容。我不知道如何写出来,但它似乎可以满足我的要求。也许有一些简单的方法可以做到这一点,我缺少(指定数组中的哪个索引是第一个写入的选项)?

谢谢你!


看这里:http://guides.rubyonrails.org/form_helpers.html#making-select-boxes-with-ease http://guides.rubyonrails.org/form_helpers.html#making-select-boxes-with-ease

如果您使用现有的帮助程序,您可以通过 id 指定要选择的选项。具体来说这个例子:

<%= options_for_select([['Lisbon', 1], ['Madrid', 2]], 2) %>

output:

<option value="1">Lisbon</option>
<option value="2" selected="selected">Madrid</option>

你说你不知道哪个选项的 ID 是“橙色”。如果你想在水果数组中找到“orange”的ID,这就能做到,那么你可以使用助手:

(@fruit.detect { |i| i[1] == 'orange' } || []).first
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选择标签,指定所选选项(或将数组元素移动到索引 0) 的相关文章

随机推荐