假设我正在查询水果清单,然后将水果的ID和名称收集到@fruit中.
[32, "apple"],
[8, "bannana"],
[10, "cantelope"],
[11, "grape"],
[15, "orange"],
[41, "peach"],
[22, "watermelon"]
Run Code Online (Sandbox Code Playgroud)
@fruit正在Select帮助器中使用.位于@fruit的索引0处的"apple"将是select的选定值(第一选项).这是一个组成的示例,但默认情况下,我总是会知道"橙色"的名称(不是id).我需要"orange"作为select标签的选定值(第一个选项).
":prompt =>'orange'"只是在select中添加了第二个"orange"实例.到目前为止,我在Google上找到的所有内容似乎都是为了在列表中添加额外的值或空白.
由于数组的索引0总是成为选定的值(如果在select帮助器中没有使用提示符或空白),有没有办法找到包含名称"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"]
Run Code Online (Sandbox Code Playgroud)
我现在唯一能想到的就是遍历@fruit,如果发现"orange",则将其添加到新数组中.然后再次遍历@fruit数组并添加任何没有"orange"名称的内容.我不知道如何写出来,但似乎它会做我正在寻找的东西.也许有一些简单的方法可以做到这一点我缺少(指定数组中的哪个索引是第一个写的选项)?
谢谢!
ctc*_*rry 18
请参见此处: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>
Run Code Online (Sandbox Code Playgroud)
你说你不知道ID是哪个选项是"橙色".如果你想在fruit数组中找到"orange"的ID,那么你可以使用帮助器:
(@fruit.detect { |i| i[1] == 'orange' } || []).first
Run Code Online (Sandbox Code Playgroud)
Sye*_*lam 11
您可以options_from_collection_for_select在select标记中使用以选择默认选项.例如:
<%= select_tag 'state',
options_from_collection_for_select(@fruits, 'id', 'name', 15),
:include_blank => true %>
Run Code Online (Sandbox Code Playgroud)
这将默认选择"橙色".API文档.
| 归档时间: |
|
| 查看次数: |
23388 次 |
| 最近记录: |