Introducción a Rails

Profundizando en REST

Ya hemos cubierto todas las acciones CRUD de una aplicación REST. Lo hicimos declarando rutas separadas con los verbos adecuados en config/routes.rb. Así es como se ve el archivo hasta ahora:

get "posts" => "posts#index"
get "posts/new"
post "posts" => "posts#create"
get "posts/:id" => "posts#show", :as => :post
get "posts/:id/edit" => "posts#edit"
put "posts/:id" => "posts#update"
delete "posts/:id" => "posts#destroy"

Eso es un montón de código para cubrir un único recurso. Afortunadamente, Rails proporciona un método llamado resources el cual puede ser usado para declarar un recurso REST estándar. Así es como el archivo config/routes.rb se ve luego de utilizar resources:

Blog::Application.routes.draw do

  resources :posts

  root :to => "welcome#index"
end

Si ejecutas rake routes, podrás ver que todas las rutas que declaramos anteriormente aún están disponibles:

# rake routes
    posts GET    /posts(.:format)          posts#index
          POST   /posts(.:format)          posts#create
 new_post GET    /posts/new(.:format)      posts#new
edit_post GET    /posts/:id/edit(.:format) posts#edit
     post GET    /posts/:id(.:format)      posts#show
          PUT    /posts/:id(.:format)      posts#update
          DELETE /posts/:id(.:format)      posts#destroy
     root        /                         welcome#index

Además, si vas a través de las acciones de creación, actualización y eliminación de posts, la aplicación sigue funcionando como antes.

TIP: En general, Rails fomenta el uso de recursos (resources) en lugar de declarar las rutas manualmente. Se hizo solamente en esta guía como un ejercicio de aprendizaje. Para más información acerca de routing, mira Rails Routing from the Outside In.