[ruby-it] link_to con il blocco...

Andrea (Q) q a ptumpa.com
Ven 27 Mar 2009 00:11:03 CET


On 26 Mar 2009, at 22:27, Alessandro Ale wrote:

> Andrea Cuius wrote:
>> ok, partiamo dal presupposto che non stiamo usando php.
>>
>> il tuo primo link funziona si, ma non usi restful, sarebbe meglio
>> avere una cosa del tipo
>>
>> <%= link_to "Messages", messages_path %>
>
> si l'avevo letto... ma (per mia ignoranza) non mi trovo molto con i
> path...
> correggimi se sbaglio dovrei definire dentro routes.rb una riga cosi':
>
> map.messages '/messages/inbox', :controller => "messages",:action =>
> "inbox"
>
> ma il vantaggio quale è?
>

tutti i controller funzionano nello stesso modo con gli stessi metodi,  
utilizzi il controller come una risorsa sequando il pattern CRUD come  
per i modelli.
il vantaggio è che hai delle url sensate, codice più semantico e  
leggibile, ovviamente ti aiuta anche a riutilizzare il codice, ad  
esempio utilizzando stessi controller ma con url e quindi compiti  
diversi, se nella tua app hai messaggi magari vuoi utilizzarli in modo  
diverso (polimorfismo) per associarli a utenti o gruppi avendo cose  
del tipo Users/1/messages oppure groups/1/messages

se da console lanci questo comando e vedi tutte le routes già definite

rake routes
o magari (sperando che nn hai windows)
rake routes | grep BLALBABLA

come hai detto tu hai routes.rb per definire TUTTE le tue routes e  
come sono associate fra di loro
ah la tua definizione della route è medievale, se il msg è associato  
all utente dovresti fare una cosa del tipo

map.resources :users do |users|
	users.resources	:message
end

dopo che hai definito questa route prova a vedere che url ti genera  
lanciando "rake routes"

>
>> forse stai sbagliando approccio, unread_messages andrebbe definito  
>> nel
>> modello User.
>> current_user.unread_messages.empty? mi sembra leggermente meglio.
>
> si, hai ragione...
grazie :]
>
>
>
>
>> cmq resta il fatto che non capisco cosa vuoi fare dentro al "do" (che
>> ovviamente link_to non accetta)
>>
>> per passare un parametro con il link_to puoi fare una cosa del tipo
>
> aspetta, mi sono spiegato male...
> lo scopo non è passare un parametro, ma semplicemente visualizzare nel
> link il numero di messaggi non letti: vorrei ottenere questo:
>
>    <a href="/messages/inbox">
>      Message
>      <span class="lblBold">(2)</span>
>    </a>
>
> (mentre invece ottengo questo)
>
>    <a href="inbox" action="inbox" controller="messages">
>      Messages
>      <span class="lblBold">(2)</span>
>    </a>
>
> Grazie, anche del consiglio su dove mettere gli unread message...
>

<%= link_to "Messages(#{current_user.unread_messages.length)",  
user_messages_path(current_user) %>

oppure in modo medievale

<%= link_to  
"Messages(#{current_user.unread_messages.length)", :controller  
=> :messages, :action => :index, :user_id => current_user  %>


cmq sul serio, non è php :]


Q


> Ciao
>
> -- 
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml



More information about the Ml mailing list