On 26 Mar 2009, at 22:27, Alessandro A. wrote:
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 :]
lo scopo non è passare un parametro, ma semplicemente visualizzare nel
Messages
(2)
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