Ordenar fin_all.collect

Como puedo ordenar alfabeticamente

<%= select ‘product’, ‘category_id’, Category.find_all.collect {|c| [
c.name, c.id ]}

gracias

<%= select ‘product’, ‘category_id’, Category.find(:all, :order =>
:campoaordenar).collect {|c| [c.name, c.id ]}%>

Gracias Luis

Luis V. wrote:

<%= select ‘product’, ‘category_id’, Category.find(:all, :order =>
:campoaordenar).collect {|c| [c.name, c.id ]}%>

On 27/02/07, Emili Parreño [email protected] wrote:

Como puedo ordenar alfabeticamente

<%= select ‘product’, ‘category_id’, Category.find_all.collect {|c| [
c.name, c.id ]}

Primero, find_all está deprecated. Usa find :all

Segundo, utiliza la doc de la API para ver como funciona find, allí
verás los parámetros disponibles, entre otras :order

Tercero, no metas un find en una vista, estás rompiendo el MVC.
Muévelo al controlador, como mínimo.


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 2/27/07, Sebastian D. [email protected] wrote:

Yo suelo poner ese tipo de llamadas (las opciones para un select) en
un helper:

Ya que estamos… :slight_smile:

Yo uso acts_as_dropdown [1] que me parece bastante cómodo. Agrega unos
métodos copados a ActiveRecord y a Array, está bueno…

Saludos!

[1] http://delynnberry.com/projects/acts-as-dropdown/

Yo suelo poner ese tipo de llamadas (las opciones para un select) en
un helper:

en product_helper.rb:

def options_for_category
Category.find(:all, :order => ‘name’).collect {|category|
[category.name, category.id]
end

en edit.rhtml:

<%= select ‘product’, ‘category’, options_for_category %>

De esa manera, tus vistas quedan mucho mas limpias (y tus acciones
tambien)… y en el futuro puedes modificar facilmente la lista de
opciones, cambiar el orden, incluir algun otro valor en la
descripcion, etc, etc.

Yo también uso acts_as_dropdown. Bastante práctico