2011-07-06 28 views
6

Quiero ordenarlo/ordenarlo (desc o asc como lo quiero) por la columna de la tabla de la base de datos "plays" Estoy totalmente confundido. ¿Acabo de encontrar una solución para select pero no collection_select?Ruby on Rails: Cómo ordenar un collection_select

algún código de mi vista

<%= f.collection_select :player1, Player.all, :id, :name %> 

no saben cómo ordenar/fin

también hay columnas en la tabla de base de datos como "juega", "metas" ...

Respuesta

18

Simplemente pase la colección realmente ordenada a collection_select helper:

collection_select(:post, :author_id, Author.order('created_at DESC'), :id, :name_with_initial, :prompt => true) 

Así que, en su alma Por ejemplo, se verá así:

<%= f.collection_select :player1, Player.order('plays DESC'), :id, :name %> 
+0

no sé lo que quiere decir, soy un novato. ¿podría cambiar el código a mi vista para que funcione y dónde agregar este código? intenté Player.all.order ('created_at DESC') en la vista, pero ¿no funcionó? –

+0

Esta es la idea correcta, pero al invocar 'all' se ejecuta la consulta SQL (que es la razón por la cual no se puede llamar' order' después). Simplemente puede mover '.all' al final de la cadena o eliminarlo por completo, ya que está implícito. '<% = f.collection_select: player1, Player.order ('juega DESC'),: id,: name%>' –