Custom sorting

… Ok, questa magari è una domanda stupida, ma è un pò che ci giro
intorno dunque la faccio ugualmente.

Diciamo che ho la mia applicazione che gestisce degli utenti, i quali
hanno delle note da loro scritte.
Naturalmente sussistono delle relazioni uno-a-molti (un utente ha più
note), e di appartenenza (una nota appartiene ad un utente).

Ora, quando mostro il mio utente, voglio anche mostrare le note da lui
scritte.

@user = User.find(params[:id]) lo fà , e io nella mia view ho la
possibilità di chiamare anche le sue note tramite @user.notes bla bla
bla…

Fin qui tutto ok, nel senso che riesco senza problemi ad avere le
informazioni che mi servono. Mi chiedevo però una cosa: è possibile
avere quelle note ordinate non per ID, ma che ne so, per data di
immissione, titolo o chissà cos’altro?

L’unica cosa che so fare è @user.notes.reverse, ma non mi è di nessun
aiuto…

Thanks for you patience :stuck_out_tongue:

Andre

— Andrea G. [email protected] ha
scritto:

Fin qui tutto ok, nel senso che riesco senza
problemi ad avere le
informazioni che mi servono. Mi chiedevo però una
cosa: è possibile
avere quelle note ordinate non per ID, ma che ne so,
per data di
immissione, titolo o chissà cos’altro?

L’unica cosa che so fare è @user.notes.reverse, ma
non mi è di nessun
aiuto…

i metodi #sort e #sort_by sono quelli utili ad
ordinare un Enumerable, con una cosa del genere:

user.notes.sort_by {|n| n.title}

ma se hai intenzione di usarli sempre o quasi ordinati
secondo un criterio preciso puoi aggiungere una nota a
has_many con una cosa come:

has_many :notes, :order => ‘title’

dà un’occhiata alla documentazione di has_many nelle
api di rails per maggiori informazioni.


icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info


Do You Yahoo!?
Poco spazio e tanto spam? Yahoo! Mail ti protegge dallo spam e ti da
tanto spazio gratuito per i tuoi file e i messaggi
http://mail.yahoo.it

On 8/28/06, Andrea G. [email protected] wrote:

@user = User.find(params[:id]) lo fà, e io nella mia view ho la
possibilità di chiamare anche le sue note tramite @user.notes bla bla
bla…

Fin qui tutto ok, nel senso che riesco senza problemi ad avere le
informazioni che mi servono. Mi chiedevo però una cosa: è possibile
avere quelle note ordinate non per ID, ma che ne so, per data di
immissione, titolo o chissà cos’altro?

L’unica cosa che so fare è @user.notes.reverse, ma non mi è di nessun
aiuto…

In app/model/user.rb:

has_many :notes, :order => ‘title’

come documentato in

ActiveRecord::Associations::ClassMethods

Ciao.
– fabio