martes, 8 de julio de 2014

Crear artículos - VI

Viéndolo en orden, vemos que define todos los métodos que necesitamos para administrar los artículos. No intentes comprender ahora toda la sintaxis empleada, quédate con la idea general: 
• index corresponde a la portada principal, que hace lo mismo que list y pinta ("render") lo mismo que esa acción. 
• list genera un listado paginado con los artículos. 
• show busca el artículo cuyo id se haya indicado por parámetro y lo almacena en la variable @articulo. • new prepara un nuevo Articulo, vacío. 
• create crea un nuevo Articulo con los parámetros que le hayan pasado y lo salva en la base. Si tiene éxito, prepara un mensaje de "OK" y redirige al listado; si no, redirige de vuelta a la acción "new". • update busca el artículo por el id indicado, y se intenta actualizar con los parámetros pasados. Si tiene éxito, redirige a "show", y si no, de vuelta a "edit". 
• destroy busca el artículo por id, lo elimina y redirige al listado. A cada acción del controlador le corresponde una vista. Encontrarás los ficheros correspondientes en app/views/admin. Si los abres, verás que son simples ficheros HTML, con partes de código Ruby embebido, usando las etiquetas <% y %>, similar a otros lenguajes de script para web. 
• list.rhtml muestra el listado de artículos. 
• show.rhtml muestra una ficha de artículo. 
• new.rhtml muestra la página para crear un artículo. 
• edit.rhtml muestra la página para editar un artículo. 
• _form.rhtml contiene el formulario de artículo, compartido por las acciones new y edit. Esto es lo que se conoce como "partial", ya que contiene un código parcial, que se inserta dentro de otro para completarse. Podemos modificar todos estos ficheros a nuestro antojo. Por ejemplo, prueba a cambiar list.rhtml por lo siguiente para tener un listado algo más sencillo:

# app/views/admin/list.rhtml
<h1>Los artículos de mi blog</h1> <% for articulo in
@articulos.reverse %> <h2><%= link_to articulo.titulo, :action
=> :show, :id => articulo %></h2> <p><%=
simple_format(h(articulo.cuerpo)) %></p> <p><%= link_to 'Borrar',
{ :action => 'destroy', :id => articulo }, :confirm => '¿Seguro?',
:method => :post %></p> <hr /> <% end %> <%= link_to 'Anterior', {
:page => @articulo_pages.current.previous } if
@articulo_pages.current.previous %> <%= link_to 'Siguiente',
{ :page => @articulo_pages.current.next } if
@articulo_pages.current.next %> <br /> <%= link_to
'Nuevo', :action => 'new' %>

No hay comentarios:

Publicar un comentario