Está en la página 1de 15

Taller 3 de Ruby on Rails

Aplicación: Desarrollo de un Blog en ambiente Web con IDE RubyMine

Primera parte
Utilizando RubyMine:
- Ejecutar en modo administrador
- Crear un nuevo proyecto

Dar clic en opción de Rails versión , seleccionar la


versión de Rails y luego dar clic en la opción intallar
Ruby Gem

Dar clic en install y luego create


Si tiene un proyecto cargado y necesita crear uno
nuevo indicarle que lo quiere en otra ventana

Automaticamente se inicia la instalación de todo el


ambiente de Ruby on Rails.
1. Para iniciar vamos a crear nuestra aplicación con un saludo de
bienvenida, para lo cual necesitamos crearla utilizando el comando:

$ rails new blog

Ingresar a la carpeta blog si no está usando RubyMine, digitar:


$ rails server si no está usando RubyMine, con RubyMine solo tiene que dar clic en el
icono play

Recargar http://localhost:3000
Debe aparecer la página "Welcome Aboard" es la primera prueba para una nueva
aplicación Rails.

2. Generar el controlador del saludo utilizando : ir a la opción terminal de RubyMine y


digitar:

$ rails g controller bienvenidos index

Se crean varios archivos para revisarlos como


app/controllers/bienvenidos_controller.rb y la vista, que se encuentra
en app/views/bienvenidos/index.html.erb.
Abre el archivo app/views/bienvenidos/index.html.erb y escribe:

<h1>Bienvenidos a mi Blog</h1>

Recargar http://localhost:3000

Analizar que paso.

3. Indicarle a Rails donde está la página principal, para esto modficamos config/routes, cu

ando se genera el controlador el inserta la siguiente ruta en forma automática:

get "bienvenidos/index"

para poder acceder a la pagina de bienvenida, debemos indicarle la


ruta en el navegador por ahora asi:

Recargar http://localhost:3000/bienvenidos/index

Creación de un nuevo articulo: para esto debemos primero indicar la ruta


correspondiente que puede ser http://localhost:3000/articulos/new, pero si
accedemos nos producira un error que no encuentra la ruta:
Vamos a config/routes.rb , adicionamos y escribimos

get “articulos/new”

Volvemos a navegar utilizando la ruta: http://localhost:3000/articulos/new


Esto indica que no existe un controlador para esta ruta, por lo que debemos generar
uno así:

$ rails g controller articulos

Revisar la carpeta app/controllers/artículos_controller.rb y comprobar que este vacío

class ArticulosController < ApplicationController

end

Para añadir una acción a mano en un controlador, lo único que necesitas es crear un
nuevo método en el controlador. Abre el archivo
app/controllers/articulos_controller.rb y dentro de la clase ArticulosController define
un nuevo método de esta manera:
def new

end
Si recargamos en este punto debe aparecer otro error indicándonos que falta la vista
asociada el método en el controlador

Crear la vista del controlador new , para esto el archivo debería llamarse
articulos/new.html.erb y debe encontrarse dentro de la carpeta app/views de la
aplicación. Para esto dar clic derecho sobre la carpeta artículos, ingresar el nombre
new.html.erb y presionar enter.

Quedando asi el espacio para agregar información.


Ahora crea un nuevo archivo en app/views/articulos/new.html.erb y escribe el
siguiente contenido en él:

<h1>Nueva Publicación</h1>

Recargar http://localhost:3000/articulos/new

 Ahora vamos a agregar información al formulario Nueva Publicacion, para esto


debemos utilizar un constructor de formulación (form builder) denominado
form_for, para lo cual añadimos el siguiente código
app/views/artículos/new.html.erb

<%= form_for :articulo do |f| %>


<p>
<%= f.label :titulo %><br>
<%= f.text_field :titulo %>
</p>

<p>
<%= f.label :texto %><br>
<%= f.text_area :texto %>
</p>

<p>
<%= f.submit %>
</p>
<% end %>

Volvemos a recargar

Dentro del bloque para este método, el objeto FormBuilder - representado por f - se
usa para construir dos títulos y dos cajas de texto, una para el título del artículo y otra
para su contenido. Finalmente, la llamada al método submit en el objeto f crea un
botón para enviar el formulario, nombre se puede cambiar escribiendo <%= f.submit
“Guardar” %>

Para que el formulario quede libre para poderlo navegar debemos cambiar la primer
instrucción de la vista por:
<%= form_for :articulo, :url => { :action => :create } do |f| %>

Si recargarmos analizar que ocurre, debe aparecer un error indicandos que falta el método

crear, para esto debemos crearlo en el controlador y la ruta inicialmente así:


En config/routes.rb después de la ruta “articulo/new” digitamos :

post “articulos” => “articulos#create”, si refrescamos nos debe aparecer un error de que no

esta la acción de create en el controlador, vamos a crearlo así: Vaya al

app/controller/artículos_controller.rb y cree el método:

def create

end

Para conocer si esta enviando la informacion a la base de datos agreamos un


render
def create

render plain: params[:articulo].inspect

end

le debe aparecer lo que ha digitado en la nueva publicación asi:

Ahora es necesario ir creando el modelo para articulo, utilizando el siguiente comando en mod

o terminal en RubyMine:

$ rails generate model Articulo titulo:string texto:text

Una vez generado el modelo es importante revisar las carpetas que por ahora son importantes

como app/model/artículo.rb y .. la carpeta db/migrate


Para realizar la Migración se debe usar el comando:

$ rake db:migrate

Revisar que paso en su ejecución.

Guardando datos en el controlador

Vamos a dejar el método créate tal como aparece en las siguientes instrucciones:

def create
@articulo = Articulo.new(params[:articulo])

@articulo.save
redirect_to :action => :show, :id => @articulo.id
end

recargamos y analizamos

El error nos indica que falta la acción de mostrar por lo que debemos crear otro controlador así

Abre el archivo config/routes.rb y agrega la siguiente ruta:

get "articulos/:id" => "articulos#show"

def show
@articulo = Articulo.find(params[:id])
end

Explicación de la instrucción:

Articulo.find se usa para encontrar el artículo que nos interesa, pasándole el valor params[:id]

para obtener el parámetro: id directamente de la petición.


Variable de instancia (con el prefijo @) para guardar una referencia al objeto del artículo.

Hacemos eso porque Rails pase automáticamente todas las variables de instancia a la vista.

Ahora, crea un nuevo archivo app/view/articulos/show.html.erb con el siguiente contenido:

<p>
<strong>Titulo:</strong>
<%= @articulo.titulo %>
</p>

<p>
<strong>Texto:</strong>
<%= @articulo.texto %>
</p>
Navegar por cada controlador y analizar los resultados

También podría gustarte