Select con priority

Hola a todos,
no se si esto puede ser una chorrada, pero no lo he encontrado en la
documentación. Resulta que tengo un select con 5 campos y quiero de uno
de esos campos sea el prioritario, igual a lo que se hace con el
time_zone_select con el priority_zones ó con el country_select usando
priority_countries=[‘Spain’].
¿existe está opción para un select standard?

Muchas gracias

Hola a todos,
¿es muy grande la chorrada que he soltado que nadie me ha contestado? =)
Lo siento, pero no lo encontré en la documentación.

2008/8/10 Mario S. [email protected]:

Hola a todos,
¿es muy grande la chorrada que he soltado que nadie me ha contestado? =)
Lo siento, pero no lo encontré en la documentación.

No especificas qué helper estás usando, pero por ejemplo, la
opciónque necesitas está claramente especificada en la documentación de


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o simplelogica.net
Recuerda comer mucha fruta y verdura.

La idea es muy sencilla,
tengo en el modelo un array con idiomas:

LANGUAGES = [
[ “English”), “en” ],
[ “Spanish”), “es” ],
[ “French”, “fr”]
]

La idea es que si el usuario es de España, le salga como campo
prioritario Spanish al desplegar el select:

Spanish

English
French

La lógica de comprobar si un usuario es de España ya lo haría jo, pero
necesito saber como priorizar un campo del select respecto al resto para
que salga arriba de todos.

Muchas gracias por todo.

LANGUAGES = [
[ “English”), “en” ],
[ “Spanish”), “es” ],
[ “French”, “fr”]
]

La idea es que si el usuario es de España, le salga como campo
prioritario Spanish al desplegar el select:

tan fácil como ordenar el array. Seguro que hay varias soluciones. Una
posible y que queda más o menos clara sería

LANGUAGES.sort do |x,y|
if x[0]==‘Spanish’
-1
elsif y[0]==‘Spanish’
1
else
x <=> y
end
end

saludos,


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez

2008/8/10 javier ramirez [email protected]:

La idea es que si el usuario es de España, le salga como campo
prioritario Spanish al desplegar el select:

tan fácil como ordenar el array. Seguro que hay varias soluciones. Una
posible y que queda más o menos clara sería

Mmmm, entonces no he entendido la cuestión, porque yo entendí, y
referí a Mario a, la opción ‘selected’ del option, que es la que se
usa en HTML para este fin.


Manuel, que
piensa que eres una excelente persona y medra en torno a
http://simplelogica.net y/o simplelogica.net
Recuerda comer mucha fruta y verdura.

tan fácil como ordenar el array. Seguro que hay varias soluciones. Una
posible y que queda más o menos clara sería

Mmmm, entonces no he entendido la cuestión, porque yo entendí, y
referí a Mario a, la opción ‘selected’ del option, que es la que se
usa en HTML para este fin.

lo mismo no lo entendí yo :slight_smile:

creía que quería que apareciese arriba del todo. He visto que en algunas
selects lo que se hace de hecho es sacar los países más frecuentes
arriba del todo de la lista, y luego el resto de sitios del mundo. Lo
mismo con el selected le sobra

saludos


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez

2008/8/10 Mario S. [email protected]:

prioritario Spanish al desplegar el select:

Spanish

English
French

La lógica de comprobar si un usuario es de España ya lo haría jo, pero
necesito saber como priorizar un campo del select respecto al resto para
que salga arriba de todos.

Hay una opcion :selected.

Como la tabla de paises no cambia y es pequeña yo monto esto:

def country_choices
@@country_choices ||= Country.ordered.map {|c| [h(c.name), c.id]}
end

def country_selector(method = :country_id, options = {}, html_options
= {})
options[:selected] = Country.spain.id unless @object &&
@object.send(method)
select method, country_choices, options, html_options
end

Country.spain es un metodo de conveniencia de Country:

Returns and caches the Country instance that represents Spain.

def self.spain
@@spain ||= find_by_name_normalized(‘espana’)
end

Muchas gracias a todos,
al final lo he solucionado con un select:

<%= f.select :lang, User:: LANGUAGES, :selected => (@user.lang ||
preferred_user_lang) %>

Donde preferred_user_lang es un helper donde tengo la lógica para ver
el cual sería el idioma preferido del usuario.

Gracias lista!