[ruby-it] Nell'helper o nel modello?
Luca Mearelli
luca.mearelli a gmail.com
Gio 8 Ott 2009 10:55:25 CEST
2009/10/8 Paolo Montrasio <paolo a paolomontrasio.com>:
> C'è un modello Model con un campo status. Nelle view in base allo status
> si mostrerà un'icona (es: rossa per status disabilitato, verde per
> status abilitato, etc).
>
> Posso creare un helper status_for_mymodel a cui passo l'oggetto Model e
> che ritorna l'image_tag appropriata. Oppure posso creare un metodo
> icon_tag in Model e fargli ritornare l'immagine. Nella view poi scriverò
> @oggetto.icon_tag
>
la tecnica che uso e' una variazione sulla seconda strada che indichi,
in pratica separo le definizione di quale 'icona' usare dall'output
del tag image (o dell'url se e' per quello), facendolo in maniera
uniforme sui diversi modelli (i.e. usando lo stesso metodo)
e.g.
class ModelA
def icon_name
case status
....
end
end
class ModelB
def icon_name
case this_other_status
....
end
end
e poi l'helper diventa lo stesso per tutti i modelli:
def icon_for(model, options)
image_tag(model.icon_name, options)
end
quindi nella pagina avrai
<%= icon_for model, options %>
insomma il metodo icon_name dei modelli mappa l'istanza del modello
nello 'spazio' delle possibili icone ( non e' detto poi che l'output
debba essere direttamente il nome dell'icona sul file system, potrebbe
essere 'un puntatore' all'icona giusta, i.e. ci potrebbe essere di
mezzo un'altra indirezione )
che ne dici?
ciao
Luca
More information about the Ml
mailing list