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
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
2009/2/2 Alessandro Del coco [email protected]:
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.
2009/2/2 Alessandro Del coco [email protected]:
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
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