Este documento proporciona instrucciones para crear una aplicación básica de blog con Ruby on Rails (RoR). Los pasos incluyen crear un nuevo proyecto de RoR, generar un controlador y vista de bienvenida, configurar rutas y modelos para artículos, y agregar funcionalidad básica como la creación, lista y visualización de artículos.
1. Guia Para la Creacion de Un Blog con RoR
Creamos un nuevo proyecto
1. rails new blog
Ingresamos al proyecto creado
2. cd blog
Iniciamos el servidor
3. rails server # 0.0.0.0:3000 en el navegador
Para conseguir que Rails diga "Hola" en el navegador, necesitas crear como mínimo
un controlador y una vista.
4. rails generate controller welcome index
Se creara una un controlador y una vista. Ingresa la vista para agregar una
etiqueta html welcome/index.html
5. <h1>Hola mundo </h1> #se puede acceder a http://0.0.0.0:3000/welcome/index.html
Ahora crearemos un Post al Blog mediante la definicion de los metodos crud,por lo
que primero debemos configurar la ruta de los Post en config/routes.rb.
6. get "posts/new" # no se puede acceder a http://0.0.0.0:3000/post/new.html
Luego creamos el controlador y la vista de la ruta Post
7. rails g controller posts
Ingresamos al controlador de Post en la ruta app/controller/posts_controller.rb
para definir el metodo new
8. def new
@post = Post.new
end
Ahora debemos crear la vista new dentro del layout post para que por medio del
metodo new declarado post_controller pueda mostrar la vista ejemplo:
post/new.html.erb
9. <h1>Nuevo Post</h1> #http://0.0.0.0:3000/post/new.html
Ahora crearemos nuestro primer formulario en la vista new dentro del layout post
utilizando el constructor de formularios form_for y definiendo la accion create
2. # <%= form_for :post do |f| %>
10.<%= form_for :post, :url => { :action => :create } do |f| %>
<p>
<%= f.label :title %><br>
<%= f.text_field :title %>
</p>
<p>
<%= f.label :text %><br>
<%= f.text_area :text %>
</p>
<p>
<%= f.submit %>
</p>
<% end %>
Luego agregamos la accion create en config/routes.rb justo debajo de la anterior
ruta.
11. post "posts" => "posts#create"
Luego debemos definir la accion create en post_controller como metodo para que
pueda funcionar y salvar los datos en la base de datos.
12. def create
end
Luego de enviar los parametros desde la vista en donde esta el formulario en
post/new.html.erb, rails los recibe como parametros por medido del metodo propio
render, por lo que es importante referenciarlos desde el metodos create en
posts_controller
13. def create
render :text => params[:post].inspect
end
Si tratamos de ingresar una informacion al formulario, veremos error, puesto que
veremos los parametros que llegan pero que no se estan guardando, por lo que
tenemos que crear el modelo de post para que pueda crear la base de datos,
definiendo los mismos parametros enviados en el formulario como campos al modelo
post.
14. rails generate model Post title:string text:text
Ahora para poder salvar los datos cambiando el metodo create, definiendo
@post.save, encargado de guardar el modelo en la base de datos.
3. 15. def create
@post = Post.new(params[:post])
@post.save
redirect_to :action => :show, :id => @post.id
end
Ahora debemos mostramos los articulos, defininiendo el metodo show por los que
debemos la ruta para el nuevo metodos de post_controller en config/routes.rb
16. get "posts/:id" => "posts#show"
Luego podemos utlizamos la funcion Post.find para encontrar el id del articulo que
se va a mostrar dentro del metodo show en post_controller
17.def show
@post = Post.find(params[:id])
end
Luego debemos crear la vista de show dentro del layout post show.html.erb
18.<p>
<strong>Title:</strong>
<%= @post.title %>
</p>
<p>
<strong>Text:</strong>
<%= @post.text %>
</p>
Ahora debemos listas los productos que vamos agregando por lo que es importante
definir la ruta en donde se van a mostrar todos los articulos.
19.get "posts" => "posts#index"
por lo que es importante definir el metodo index en el controlador post_controller
20. def index
@posts = Post.all
end
Ahora debemos crear la vista en app/views/posts/index.html.erb
21. <h1>Listing posts</h1>
<table>
<tr>
<th>Title</th>
<th>Text</th>
</tr>
<% @posts.each do |post| %>
4. <tr>
<td><%= post.title %></td>
<td><%= post.text %></td>
</tr>
<% end %>
</table>
Ahora agreguemos los enlaces para redireccionarnos a las vista index de post
22. <%= link_to 'New post', :action => :new %>
Luego agregamos los enlaces para redireccionarnos a la vista new y show de post
23. <%= link_to 'Back', :action => :index %>
Ahora nos dirigimos al modelo de post en app/models/post.rb para agregar los
accesos a los campos para que estos puedan ser modificados.
24.attr_accessor:text, :title
Es importante aregar las validaciones al modelo, para que por lo menos tengan 5
caracteres de longitud en app/models/post.rb.
25. validates :title, :presence => true,
:length => { :minimum => 5 }
ahora realizamos una validacion de para redireccionar a una instancia post que
recibira del formulario en new
26. def create
@post = Post.new(params[:post])
if @post.save
redirect_to :action => :show, :id => @post.id
else
render 'new'
end
end
5.
6.
7. Impulsando el inicio de una aplicacion en RoR
Creamos un nuevo proyecto
1. rails new store
Ingresamos al proyecto creado
2. cd store
Iniciamos el servidor
3. rails server # 0.0.0.0:3000 en el navegador
Para conseguir que Rails diga "Hola" en el navegador, necesitas crear como mínimo
un controlador y una vista.
4. rails g scaffold article name:string precio:decimal categoria:string
Aplicamos la migración a la base de datos ejecutamos el siguiente comando
5. rake db:migrate
Iniciamos el servidor
6. rails server