[ruby-it] Ordinare risultati find in base a campo esterno
Silvano Stralla
silvano.stralla a sistrall.it
Mer 2 Dic 2009 16:39:27 CET
Ciao!
Parto dal fondo.
Per selezionare e ordinare le news più commentate potresti usare:
@neews_piu_commentate = Neew.find(:all, :limit => 5, :include =>
:comments, :group => "#{Neews.table_name}.id", :order =>
"count(#{Comment.table_name}.id) DESC")
A questo punto, visto che hai già limitato la ricerca ai primi 5
risultati, puoi ciclare con:
<h1>News più commentate</h1>
<% @neews_piu_commentate.each do |neew| %>
<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>
<% end %>
Ciao,
Silvano
2009/12/2 Giorgio Arcella <a-mj a hotmail.it>:
> 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 %>
>
> so che fa schifo, ma la programmazione non è il mio pane quotidiano(e
> poi x me l'importante è sempre che funzioni, e almeno questo funziona
> ;p)
>
> 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...
> nella index del controller delle news le ho provate tutte:
>> @neews_piu_commentate = Neew.find(:all, :order =>
>> '@neews_piu_commentate.comments.size DESC')
> oppure
>> @neews_piu_commentate = Neew.find(:all, :include => .comments, :order =>
>> 'newsComments.size DESC')
> oppure
>> @neews_piu_commentate = Neew.find(:all, :order => 'comments.size DESC')
>
> ma non funziona proprio!
> Se qualcuno sa darmi una mano grazie mille!
> Giorgio
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
>
--
Considera l'ambiente prima di stampare questa email. Dai, che
l'equazione è semplice: meno A4, più alberi.
. . . Silvano Stralla . . .
email: silvano.stralla a sistrall.it
site: http://www.sistrall.it
More information about the Ml
mailing list