Ok per istanziare un oggetto nella vista?
-
06-09-2019 - |
Domanda
E 'ok per istanziare un oggetto in una vista prima di passarlo ad un parziale?
<%= render :partial => "trade_new", :locals => {:trade=>Trade.new("e", "b") } %>
O è meglio per creare un'istanza di qualsiasi oggetto nel controller come variabili di istanza:
@trade = Trade.new("e", "b")
e quindi passare la variabile di istanza di una parziale vista in questo modo:
<%= render :partial => "trade_new", :locals => {:trade => @trade } %>
La mia ipotesi è che è meglio per istanziare nuovi oggetti con il controller per evitare duplicazioni -. Come ad esempio nel caso in cui più modelli possono avere bisogno di passare questo nuovo oggetto ad un parziale dal stessa azione
Soluzione
In primo luogo, è bene istanziare un oggetto nella vista. Nulla sarà probabilmente saltare in aria in faccia. Tuttavia, poi si dimentica tutto il vantaggio di dividere la vostra architettura in livelli.
E 'meglio un'istanza dell'oggetto nel controllore. Alcuni dei motivi includono - miglior riutilizzo, test molto più semplice, migliore progettazione a causa del disaccoppiamento
.Vedere gli articoli sui modelli di presentazione qui .