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.
Alessandro D. (Guest)
on 2009-02-02 16: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
Andrea C. (Guest)
on 2009-02-02 16: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
Pietro G. (Guest)
on 2009-02-02 16:51
(Received via mailing list)
2009/2/2 Alessandro Del coco <removed_email_address@domain.invalid>:
> 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.
Alessandro D. (Guest)
on 2009-02-02 18:07
Grazie a entrambi...

@Pietro G.
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
Pietro G. (Guest)
on 2009-02-02 18:46
(Received via mailing list)
2009/2/2 Alessandro Del coco <removed_email_address@domain.invalid>:
> 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.