Forum: Rails-ES Ordenar lista por campos de otra tabla

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Emili P. (Guest)
on 2007-02-21 12:29
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
------------------------
Hernan F. (Guest)
on 2007-02-21 15:44
(Received via mailing list)
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 ;)


Saludos
Hernán Fernandez
netflux.com.ar
Emili P. (Guest)
on 2007-02-21 20:00
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:
...
Damian J. (Guest)
on 2007-02-21 21:14
(Received via mailing list)
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'
Emili P. (Guest)
on 2007-02-22 21:17
Ya lo he solucionado.
http://www.cuadernorojo.com/ruby-on-rails/paginaci...

> 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'
This topic is locked and can not be replied to.