---
title: 'Pequeño blog'
---
Crear el proyecto:
```bash
rails new lil_blog -d postgresql
```
Crear la base de datos:
```bash
rails db:create
```
>Cambiar los valores de conexión en database.yml
Crear el modelo post:
```bash
rails g model post title description
```
Crear el controlador con los métodos que necesitan vistas:
```bash
rails g controller posts index show new edit
```
Modificamos las rutas:
```ruby=
Rails.application.routes.draw do
# get 'posts/index'
# get 'posts/show'
# get 'posts/new'
# get 'posts/edit'
resources :posts
# Defines the root path route ("/")
root "posts#index"
end
```
Ejecutamos la migración:
```bash
rails db:migrate
```
Agregamos los strong params:
```ruby=3
private
def set_post
@post = Post.find(params[:id])
end
def post_params
params.require(:post).permit(:title, :description)
end
```
Agregamos el método create:
```ruby=15
def create
@post = Post.new(post_params)
respond_to do |format|
if @post.save
format.html { redirect_to post_url(@post), notice: "Post fue creado correctamente"}
format.json {render :show, status: :created, location: @post}
else
format.html{render :new, statu: :unprocessable_entity}
format.json {render json: @post.errors, status: :unprocessable_entity}
end
end
end
```
Agregamos el método update:
```ruby=32
def update
respond_to do |format|
if @post.update(post_params)
format.html { redirect_to post_url(@post), notice: "Update Post"}
format.json { render :show, status: :ok, location: @post}
else
format.html { render :edit, status: :unprocessable_entity}
format.json { render json: @post.errors, status: :unprocessable_entity}
end
end
end
```