ruby on rails - Rieles: sobre rendimiento.
ruby-on-rails ruby-on-rails-3 (1)
Vi un código en una aplicación Rails v2.3 .
En layout/car_general.html.erb
(esta vista es llamada por un método en cars_controller), vi el código:
<body>
<%= yield %>
<%= javascript_include_tag ''jquery-1.4.2.min'' %>
<% javascript_tag do %>
<%= yield :jstemplates %>
var some_car = new Object;
<%= yield :some_car %>
<% end -%>
</body>
Dos preguntas para hacer:
- ¿Dónde puedo encontrar el contenido de rendimiento del primer <% = yield%> en
<body>
. - ¿Es una manera específica de incluir el código js en una vista usando
<%= yield :jstemplates %>
y qué pasa con<%= yield :some_car %>
, apunta a una vista o simplemente para mostrar el valor desome_car
?
Sin ningún argumento, el rendimiento mostrará la plantilla del controlador / acción actual. Entonces, si estás en la página de cars/show
, se mostrarán views/cars/show.html.erb
.
Cuando pasa el resultado de un argumento, le permite definir el contenido de las plantillas que desea representar fuera de esa plantilla. Por ejemplo, si su página de cars/show
tiene un fragmento HTML específico que desea representar en el pie de página, puede agregar lo siguiente a su plantilla de show y al diseño car_general
:
show.html.erb:
<% content_for :footer do %>
This content will show up in the footer section
<% end %>
layouts / car_general.html.erb
<%= yield :footer %>
La Guía Rails tiene una buena sección sobre el uso de rendimiento y contenido_para: http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield
La documentación de la API para content_for
es útil y tiene otros ejemplos a seguir. Tenga en cuenta que es para Rails 3.1.1, pero esta funcionalidad no ha cambiado mucho desde la versión 2.3, en todo caso, y aún debería solicitar 3.0.xy 3.1.x.