# Custom sorting

**URL:** <https://www.ruby-forum.com/t/custom-sorting/66727>\
**Category:** IT\
**Created:** [August 28, 2006, 8:31pm UTC](https://www.ruby-forum.com/t/custom-sorting/66727 "2006-08-28T20:31:27Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![andre83](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/bcef8e/32.png) [@andre83](https://www.ruby-forum.com/u/andre83)\
**Post date:** [August 28, 2006, 8:31pm UTC](https://www.ruby-forum.com/t/custom-sorting/66727/1 "2006-08-28T20:31:27Z")

</div>

… 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 😛

Andre

---

<div class="post-metadata">

**Author:** ![andre83](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/bcef8e/32.png) [@andre83](https://www.ruby-forum.com/u/andre83)\
**Post date:** [August 28, 2006, 9:14pm UTC](https://www.ruby-forum.com/t/custom-sorting/66727/2 "2006-08-28T21:14:13Z")

</div>

— Andrea G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](http://riffraff.blogsome.com)  
blog en: [http://www.riffraff.info](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](http://mail.yahoo.it)

---

<div class="post-metadata">

**Author:** ![andre83](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/bcef8e/32.png) [@andre83](https://www.ruby-forum.com/u/andre83)\
**Post date:** [August 28, 2006, 9:18pm UTC](https://www.ruby-forum.com/t/custom-sorting/66727/3 "2006-08-28T21:18:15Z")

</div>

On 8/28/06, Andrea G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) 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](http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#M000530)

Ciao.  
– fabio
