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