ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

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:

  1. ¿Dónde puedo encontrar el contenido de rendimiento del primer <% = yield%> en <body> .
  2. ¿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 de some_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.