2012-02-02 9 views
5

Estoy aprendiendo Ruby on Rails del libro de Michael Hartl. Realmente disfruto esta escritura, estructurada y clara. Sin embargo, tengo una pregunta sobre el capítulo 3.3 diferencias entre Rails 3.0 y los carriles de 3.2 versiones:Diferencias entre libros de Michael Hartl entre Rails 3.0 y Rails 3.2

  • El PagesController se convierte en un StaticPagesController
  • @Title no se inicializa más en el controlador, pero en cada página
  • El @Title variable se inicializa a través de la función "proporcionar", y se utiliza a través de la función "rendimiento" en lugar de simplemente insertando <%= @title %>

¿es por razones de formación, o ¿Es una mejor práctica actualizada del desarrollo de RoR?

+0

También estoy confundido con el uso de la función de proporcionar cuando sigo este tutorial. – zsljulius

Respuesta

16

El PagesController se convierte en un StaticPagesController

No hay ninguna razón. PagesController está bien. Lo hizo tal vez por razones de claridad (?).

@title no se inicializa más en el controlador, pero en cada página

Esto es para mejor razón práctica/convención. Por favor, eche un vistazo a la respuesta a esta cuestión Where does the meta content live in the MVC?

La variable se inicializa @title través de la función "proporcionar", y se utiliza a través de la función "rendimiento" en lugar de simplemente insertando <% =% @title>

La misma respuesta que la anterior.

Algunas personas piensan que el contenido meta como el título pertenece a la vista y, por lo tanto, debe establecerse en la vista, no en el controlador.

Las diferencias prácticas entre provide y content_for están bien explicadas aquí: http://api.rubyonrails.org/classes/ActionController/Streaming.html#module-ActionController::Streaming-label-Communication+between+layout+and+template

Tenga en cuenta que estos cambios no son específicos a Rails 3.2 (excepto para provide que fue introducida con stream en Rails 3.1).

Cuestiones relacionadas