Forum: Italian Ruby user group Collection ordinata di un'associazione

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.
B02941e65251925944680e6dbe7aa023?d=identicon&s=25 Alessandro Del coco (menestra)
on 2009-02-02 15:30
Ciao ragazzi,

volevo sapere se c'è un modo rapido e veloce per riprendere la
collection di un'associazione già ordinata in base ad un dato specifico.

Mi spiego meglio illustrando un esempio:
io ho una rubrica dove ci sono più articoli. Questi articoli hanno un
attributo che mi dice se devono essere pubblicati o meno e la data di
creazione dello stesso.
Io vorrei semplicemente rirpendere tutti gli articoli dove lo
stato=pubblicato ordinati per data di creazione in maniera decrescente.

Se io facessi rubrica.articoli le condizioni sopra descritte non sono
rispettate in qquanto prenderei tutti gli articoli e basta associati a
quella determinata rubrica.

Accetto consigli.

Grazie
24035e6fafa4c747fa9c8f2e9b39c6fd?d=identicon&s=25 Andrea Campi (Guest)
on 2009-02-02 15:51
(Received via mailing list)
On 2/2/09 3:30 PM, Alessandro Del coco wrote:
> stato=pubblicato ordinati per data di creazione in maniera decrescente.
>
Aggiungi una

has_many :articoli_pubblicati, :class_name => 'Articoli', :conditions =>
{ :stato => 'pubblicato' }, :order => 'created_at desc'

Andrea
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2009-02-02 15:51
(Received via mailing list)
2009/2/2 Alessandro Del coco <menestra@tele2.it>:
> stato=pubblicato ordinati per data di creazione in maniera decrescente.
>
> Se io facessi rubrica.articoli le condizioni sopra descritte non sono
> rispettate in qquanto prenderei tutti gli articoli e basta associati a
> quella determinata rubrica.

puoi usare un named_scope, tipo:
# articolo
class Article < ActiveRecord::Base
  named_scope :ordinati, :order => 'data_creazione DESC'
  ...
end

poi potrai usare rubrica.articles.ordinati

leggo che puoi anche scrivere:

class Rubrica < ActiveRecord::Base
  has_many :articles, :order => 'data_creazione DESC'
end

e così rubrica.articles li restituisce già ordinati.
però questa cosa non l'ho ancora provata.
B02941e65251925944680e6dbe7aa023?d=identicon&s=25 Alessandro Del coco (menestra)
on 2009-02-02 17:07
Grazie a entrambi...

@Pietro Giorgianni
Sfortunatamente mi dice che non trova il metodo named_scope....che x
caso è stato introdotto con rails 2.2 (uso la 2.0)? o è un plug-in?

Comunque la soluzione di Andrea Ciampi pare funzioni....

Grazie
8768bcdbda1adf80e4da6744268868af?d=identicon&s=25 Pietro Giorgianni (giorgian)
on 2009-02-02 17:46
(Received via mailing list)
2009/2/2 Alessandro Del coco <menestra@tele2.it>:
> Sfortunatamente mi dice che non trova il metodo named_scope....che x
> caso è stato introdotto con rails 2.2 (uso la 2.0)? o è un plug-in?

2.1
This topic is locked and can not be replied to.