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
on 08.08.2008 09:59
on 10.08.2008 16:58
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.
on 10.08.2008 17:02
2008/8/10 Mario Soto <ruby-forum-incoming@andreas-s.net>: > 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 http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#M001752 -- Manuel, que piensa que eres una excelente persona y medra en torno a http://simplelogica.net y/o http://simplelogica.net/logicola/ Recuerda comer mucha fruta y verdura.
on 10.08.2008 17:14
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.
on 10.08.2008 17:38
> 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
on 10.08.2008 18:04
2008/8/10 javier ramirez <jramirez@aspgems.com>: > >> >> 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 http://simplelogica.net/logicola/ Recuerda comer mucha fruta y verdura.
on 10.08.2008 18:19
2008/8/10 Mario Soto <ruby-forum-incoming@andreas-s.net>: > 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
on 10.08.2008 19:41
>> 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 :) 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
on 11.08.2008 00:09
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!