Ordenar lista por campos de otra tabla


#1

Mi problema es el siguiente: tengo una tabla articles (id, name…) y
otra colours(id, name…). Estas dos tablas se relacionan con una tabla
que se llama Relations que tiene los campos siguientes:

id
article_id
colour_id
image

El método list de articles muestra 50 registros ordenados
ascendentemente por nombre
def list
@article_pages, @articles = paginate :articles, :per_page => 50,
:order => “name ASC”
end

Mi intención es ordenar el listado de Realations igualmente por nombre
de artículo ascendentemente, pero claro, en la tabla relations no
aparece el nombre del artículo, sólo el id.
Alguien sabe cómo puedo ordenarlo por nombre de artículo aunque no esté
es la tabla??

Gracias


Emili Parreño
www.cuadernorojo.com


#2

Emili
una posibilidad podria ser agregarle una relación mas a los modelos, en
este
momento debes tener:

class Article < ActiveRecord::Base
has_and_belongs_to_many :colors

end

Podrias hacer:

class Article < ActiveRecord::Base
has_and_belongs_to_many :colours
has_and_belongs_to_many :mis_colores :class => ‘Colour’, :order =>
‘name
ASC’

end

de esta manera tendrias en Article.mis_colores todos los colores
asociados a
Article ordenados por nombre ascendente.

PD:El código no está probado, es un idea, nunca lo hice con habtm,
contame
si funciona :wink:

Saludos
Hernán Fernandez
netflux.com.ar


#3

No funciona, el error me dice que no puedo utilizar class donde tu lo
has puesto.

Emili
una posibilidad podria ser agregarle una relación mas a los modelos, en
este
momento debes tener:

class Article < ActiveRecord::Base
has_and_belongs_to_many :colors

end

Podrias hacer:


#4

Ya lo he solucionado.
http://www.cuadernorojo.com/ruby-on-rails/paginacion-a-medida-en-rails/

On 2/21/07, Emili Parre�o removed_email_address@domain.invalid wrote:

Mi intenci�n es ordenar el listado de Realations igualmente por nombre
de art�culo ascendentemente, pero claro, en la tabla relations no
aparece el nombre del art�culo, s�lo el id.
Alguien sabe c�mo puedo ordenarlo por nombre de art�culo aunque no est�
es la tabla??

paginate :articles, :per_page => 50, :include => :colours, :order =>
‘articles.name, colours.name’


#5

On 2/21/07, Emili Parreño removed_email_address@domain.invalid wrote:

Mi intención es ordenar el listado de Realations igualmente por nombre
de artículo ascendentemente, pero claro, en la tabla relations no
aparece el nombre del artículo, sólo el id.
Alguien sabe cómo puedo ordenarlo por nombre de artículo aunque no esté
es la tabla??

paginate :articles, :per_page => 50, :include => :colours, :order =>
‘articles.name, colours.name’