0Pricing
Ruby Academy · Lección

Rutas y parámetros

Gestione HTTP

Rutas y parámetros es una lección gratuita de Ruby Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ruby Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ruby Academy incluye 4 lecciones en total.

Gestionar solicitudes HTTP

Las aplicaciones web responden a las solicitudes haciendo coincidir rutas y leyendo parámetros.

  • Los segmentos de la ruta pueden ser dinámicos
  • Las cadenas de consulta transportan datos adicionales
  • Los cuerpos de los formularios contienen los campos enviados

Sinatra expone todos estos datos mediante el hash params.

require 'sinatra'

get '/echo' do
  params['msg'].to_s
end

Parámetros con nombre en las rutas

Los dos puntos en la ruta definen un parámetro con nombre que captura un segmento de la ruta.

  • /users/:id coincide con /users/42
  • El valor capturado aparece en params['id']
require 'sinatra'

get '/users/:id' do
  "User ID is #{params['id']}"
end

Varios parámetros

Una ruta puede tener varios parámetros con nombre.

  • Cada segmento precedido por dos puntos se convierte en una clave de params
  • El orden de la ruta no afecta al acceso
require 'sinatra'

get '/posts/:year/:month' do
  "Posts from #{params['month']}/#{params['year']}"
end

Parámetros de la cadena de consulta

Los valores de la cadena de consulta que aparecen después de ? también se incorporan a params.

  • /search?q=ruby produce params['q'] == 'ruby'
  • Los pares múltiples se separan mediante &
require 'sinatra'

get '/search' do
  "Searching for: #{params['q']}"
end

Trabajar con params como hash

El objeto params se comporta como un hash de Ruby. Practicar con un hash simple ayuda a comprender claramente estos patrones.

  • Use fetch con un valor predeterminado para mayor seguridad
  • Por convención, las claves son cadenas
params = { 'name' => 'Ada', 'lang' => 'Ruby' }

puts params['name']
puts params.fetch('age', 'unknown')

Datos de formulario con POST

En las solicitudes post, los campos del formulario enviado también aparecen en params.

  • Sinatra analiza automáticamente el cuerpo de la solicitud
  • El patrón de acceso es el mismo que para los parámetros de consulta
require 'sinatra'

post '/signup' do
  "Welcome, #{params['username']}"
end

Parámetros splat

Un splat (*) coincide con cualquier cantidad de caracteres y los almacena en la matriz params['splat'].

  • /files/* captura el resto de la ruta
  • Varios splats producen varias entradas en la matriz
require 'sinatra'

get '/files/*' do
  "Path: #{params['splat'].first}"
end

Rutas opcionales y con expresiones regulares

Las rutas pueden utilizar expresiones regulares para realizar coincidencias precisas.

  • Las capturas están disponibles en params['captures']
  • Son útiles para restricciones como permitir únicamente identificadores numéricos
require 'sinatra'

get %r{/item/(\d+)} do
  "Item #{params['captures'].first}"
end

Validar parámetros

Siempre debe validar y convertir los parámetros recibidos, ya que llegan como cadenas.

  • Use to_i o Integer() para los números
  • Rechace los valores obligatorios ausentes con un error claro
def parse_id(raw)
  id = Integer(raw)
  raise 'must be positive' if id <= 0
  id
end

puts parse_id('42')

Valores predeterminados

Proporcione valores predeterminados razonables para los parámetros opcionales a fin de evitar errores por nil.

  • params.fetch('page', '1')
  • Combínelo con una conversión para implementar una paginación segura
params = { 'page' => nil }
page = (params['page'] || '1').to_i
puts "Page: #{page}"

Redireccionar

Utilice redirect para enviar al cliente a otra URL.

  • De forma predeterminada, emite un estado 302
  • Es habitual después de enviar correctamente un formulario
require 'sinatra'

post '/login' do
  redirect '/dashboard'
end

Comprobación rápida

Compruebe sus conocimientos sobre rutas y params.

Resumen

Aprendió cómo Sinatra gestiona la entrada:

  • Los params con nombre utilizan :name en la ruta
  • Las cadenas de consulta y los campos de formulario también rellenan params
  • Los splats y las rutas con expresiones regulares capturan rutas flexibles
  • Valide y convierta siempre los params que llegan como cadenas
  • Utilice redirect para mover a los clientes entre URL

A continuación, devolverá respuestas JSON estructuradas.

Preguntas frecuentes

¿La lección «Rutas y parámetros» es gratis?

Sí — el texto completo de «Rutas y parámetros» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ruby Academy, actualiza a CoddyKit PRO. El curso de Ruby Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Rutas y parámetros»?

Gestione HTTP Practicas Ruby Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ruby Academy?

No se requiere experiencia previa. Ruby Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Rutas y parámetros»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ruby Academy?

Sí. Cada lección de Ruby Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Conceptos básicos de Sinatra
  2. Rutas y parámetros
  3. APIs JSON
  4. Middleware y Rack
← Volver a Ruby Academy