[ruby-it] Ordinare risultati find in base a campo esterno
Pietro Giorgianni
giorgian a gmail.com
Mer 2 Dic 2009 16:39:48 CET
Il 02 dicembre 2009 16.00, Giorgio Arcella <a-mj a hotmail.it> ha scritto:
> Buondė!
> Ho due quesiti da proporre!
> il primo, molto semplice:
> c'č un modo pių UMANO di scrivere questo ciclo?
>
>><h1>News pių commentate</h1>
>> <% i = 5 %>
>> <% for neew in @neews_piu_commentate %>
>> <p><b><a href="neews/<%= neew.id%>">
>> <%=h neew.titolo %>
>> </a></b>
>> <span style="font-size: 10px; font-style: italic;">(<%= >neew.comments.size >%> commenti)
>> </span>
>> </p>
>> <% i -= 1 %>
>> <% if i== 0 %>
>> <% break %>
>> <% end %>
>> <% end %>
* fatti passare direttamente 5 oggetti (usando :limit => 5 nel find) e
butta tutte le istruzioni con i;
* non costruire tu href nei link, usa piuttosto link_to.
> poi x me l'importante č sempre che funzioni, e almeno questo funziona
se, una volta che funziona, sei pronto a farti fucilare piuttosto che
fare modifiche, fai pure; in caso contrario, forse non basta che
funzioni...
> secondo:
> ho il modello neews, che has_many :comments, e il modello comments, che
> belongs_to :neew
> In quel ciclo di prima io stamperei a video le prime 5 news pių
> commentate, (ovvero che hanno neew.comments.size maggiore). Il problema
> č come ordinare l'array da cui tirar fuori i commenti in base al numero
> di commenti presente nella news...
prova una cosa tipo questa:
@neews_piu_commentate = Neews.all :limit => 5, :joins => :comments,
:group => 'neews.id', :order => 'count(comments.id) DESC'
pietro
More information about the Ml
mailing list