preferisco di gran lunga avere sguardo rendimento del layout in questo modo:
<html>
<!-- other stuff -->
<body>
<!-- other stuff -->
<%= yield :javascript %>
</body>
</html>
Poi in una vista che si può scrivere:
<% content_for :javascript do %>
<script type='text/javascript'>
function doMagic() {
//Mind-blowing awesome code here
}
</script>
<% end %>
<!-- More view Code -->
<%= render :partial => "sub_view_with_javascript" %>
E nel _sub_view_with_javascript.html.erb parziale È possibile anche scrivere:
<% content_for :javascript do %>
<script type='test/javascript'>
function DoMoreMaths() {
return 3+3;
}
</script>
<% end %>
Il mio ragionamento per questo approccio è che la resa e il contenuto per quanto riguarda la differenza file nt. Non è VUOTO inserire il tag di script per ogni content_for ma consente all'evidenziatore della sintassi di riconoscere la modifica della lingua in ogni file e mi aiuta lì.
Se si dispone di più contenuto_per le chiamate in un singolo file allo stesso simbolo (nel nostro caso: javascript), prenderei in considerazione la possibilità di consolidarli tutti in alto, ma è perfetto per l'uso con partial.
E HTML è perfettamente felice di avere quanti blocchi di script desideri. L'unico trucco possibile è quando si lavora con il codice negli strumenti di sviluppo come firebug, ci vuole un po 'più tempo per trovare il giusto blocco di script per la propria funzione. Questo succede solo per me quando ho bisogno di impostare un breakpoint javascript per eseguire il debug.
Qual è il tuo caso d'uso? È questo js generato dinamicamente? – jonnii
Quale sarebbe un esempio di js generato dinamicamente? A volte ho bisogno di passare le variabili da una vista ad una funzione javascript in fase di esecuzione. – TenJack