Supongamos que estoy consultando una lista de fruta y luego solo recojo la identificación y el nombre de la fruta en @fruit.Seleccione la etiqueta, especificando la opción seleccionada (o moviendo un elemento de la matriz al índice 0)
[32, "apple"],
[8, "bannana"],
[10, "cantelope"],
[11, "grape"],
[15, "orange"],
[41, "peach"],
[22, "watermelon"]
@fruit se está utilizando en un Ayudante de selección. "apple" en el índice 0 de @fruit será el valor seleccionado (primera opción) de la selección. Este es un ejemplo inventado, pero de manera predeterminada siempre sabré qué es "naranja" por nombre (no por id). Necesito que "naranja" sea el valor seleccionado de la etiqueta de selección (la primera opción).
": prompt => 'orange'" solo agrega una segunda instancia de "naranja" en la selección. Todo lo que he encontrado en Google hasta ahora parece ser acerca de agregar un valor extra o un espacio en blanco a la lista.
Dado que el índice 0 de la matriz siempre se convierte en el valor seleccionado (si no se utiliza ningún indicio o blanco en la ayuda de selección), ¿hay alguna manera de encontrar el índice que contenga el nombre "naranja" (@fruit [x] .name == 'orange'), y moverlo al índice 0 mientras conserva el alfa existente en el resto de la lista? Por lo tanto, la matriz @fruit se vería así:
@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"]
Lo único que se me ocurre en este momento sería para recorrer @fruit y si "naranja" se encuentra agregarlo a una nueva matriz. A continuación, vuelva a iterar a través de la matriz @fruit y agregue cualquier cosa que no tenga un nombre de "naranja". No estoy seguro de cómo escribir eso, pero parece que haría lo que estoy buscando. Tal vez hay alguna forma fácil de hacer esto que me falta (¿especificar qué índice en una matriz es la primera opción escrita)?
¡Gracias!
¡Gracias! El método de detección realmente ayudó a orientarme en la dirección correcta. Terminé teniendo problemas con el método de detección que coincide con el índice de sub-matriz 1 y que devuelve el índice 0 de la sub-matriz. Después de hacer otra pregunta sobre métodos de detección, terminé yendo con esto (encuentra la matriz secundaria que contiene 'naranja' y devuelve el último índice: <% = f.select: fruit_id, options_for_select (@fruit, @ fruit.assoc (' naranja). last)%> – Reno
significaba '.first' perdón – Reno