Tutorial de Ruby on Rails

โšก Resumen inteligente

El tutorial de Ruby on Rails presenta el framework web de cรณdigo abierto escrito en Ruby que impulsa Airbnb, GitHub y Shopify. El recorrido cubre la instalaciรณn en Windows, Mac y Linux, generadores de Rails, enrutamiento, vistas, ActiveRecord, validaciones y depuraciรณn.

  • ๐Ÿ’Ž Lenguaje y marco de trabajo: Ruby es un lenguaje dinรกmico y orientado a objetos diseรฑado para la legibilidad, y Rails es el framework MVC de pila completa construido sobre รฉl para la entregaping aplicaciones web rรกpidamente.
  • ๐Ÿ› ๏ธ Configuraciรณn multiplataforma: Instalar Ruby y Rails en Windows usando RubyInstaller, en Mac a travรฉs de Homebrew y en Ubuntu Linux mediante apt seguido de gem install rails.
  • ๐Ÿ›๏ธ Principios rectores: Rails impone el principio de "No te repitas" y la convenciรณn sobre la configuraciรณn, de modo que los equipos escriben menos cรณdigo repetitivo y siguen una estructura de proyecto predecible.
  • โš™๏ธ Generators y enrutamiento: Utilice rails generate scaffold para generar el cรณdigo CRUD, luego confรญe en config/routes.rb para mapear RESTful. URLs a acciones del controlador en segundos.
  • ๐Ÿ—„๏ธ Potencia de ActiveRecord: ActiveRecord asigna clases Ruby a tablas de bases de datos, admite migraciones, asociaciones y validaciones, y mantiene la coherencia de los datos en diferentes entornos.

Tutorial de Ruby on Rails

ยฟQuรฉ es Ruby?

Rubรญ Ruby es un lenguaje de programaciรณn de alto nivel, interpretado y orientado a objetos. Es un lenguaje dinรกmico de cรณdigo abierto con una gran comunidad que lo respalda. Ruby fue diseรฑado para la simplicidad y la productividad. Fomenta la escritura de cรณdigo que prioriza la experiencia humana sobre la eficiencia computacional. Yukihiro Matsumoto creรณ Ruby en Japรณn en 1995.

ยฟQuรฉ son los rieles?

Rieles Rails es un marco de desarrollo escrito en Ruby para la creaciรณn de aplicaciones web. Fue creado como la base de la aplicaciรณn Basecamp y posteriormente lanzado como software de cรณdigo abierto en 2004. Rails ofrece muchas caracterรญsticas y funcionalidades estรกndar integradas, lo que lo convierte en una opciรณn adecuada para prototipos MVP.ping y un rรกpido desarrollo de productos.

Rails fue creado por David Heinemeier Hansson, conocido popularmente como DHH. Es una de las herramientas mรกs influyentes y populares para el desarrollo de aplicaciones web. La utilizan importantes plataformas como Airbnb, GitHub y Shopify.

ยฟPor quรฉ rieles?

Antes de instalar la cadena de herramientas, es รบtil comprender por quรฉ Rails sigue siendo una opciรณn popular para el envรญoping aplicaciones web rรกpidamente.

  • Rails se distribuye como una gema de Ruby y se puede utilizar para crear una amplia variedad de aplicaciones.
  • Te permite crear aplicaciones web convencionales, sitios de comercio electrรณnico, sistemas de gestiรณn de contenido y mucho mรกs.
  • Rails es un framework completo que incluye todo lo necesario para crear una aplicaciรณn web basada en bases de datos utilizando el patrรณn Modelo-Vista-Controlador (MVC).
  • Todas las capas estรกn diseรฑadas para funcionar juntas a la perfecciรณn, por lo que los proyectos de Rails suelen necesitar menos lรญneas de cรณdigo que los proyectos equivalentes en otros frameworks.

Cรณmo descargar e instalar Ruby en Windows

El proceso de instalaciรณn depende de su sistema operativo. Las siguientes secciones cubren la instalaciรณn de Ruby en Windows, Mac y Linux.

Paso 1) Descarga Rubyinstaller.
La forma mรกs sencilla de instalar Ruby en tu Windows El ordenador se instala mediante Ruby Installer, disponible en https://rubyinstaller.org/.

Una vez descargado, ejecute el instalador.

Paso 2) Haz clic en el instalador descargado.
Double-haga clic en el archivo de instalaciรณn descargado, por ejemplo rubyinstaller-2.4.1-2-x64.exe.

Paso 3) Acepte la licencia.
Seleccione la opciรณn "Acepto la licencia" y haga clic en el botรณn "Siguiente". Deberรญa ver la pantalla que se muestra a continuaciรณn.

Descargue e instale Ruby en Windows

Paso 4) Marque las dos primeras casillas.
Marque las dos primeras casillas de verificaciรณn para facilitar la ejecuciรณn de scripts Ruby.

Haz clic en el botรณn "Instalar" para iniciar la instalaciรณn. Deberรญas ver la pantalla que aparece a continuaciรณn cuando finalice.

Descargue e instale Ruby en Windows

Paso 5) Haga clic en Finalizar.
No desmarque la opciรณn que instala MSYS2. Haga clic en ยซFinalizarยป para completar la instalaciรณn. Se abrirรก una ventana del sรญmbolo del sistema como se muestra a continuaciรณn.

Descargue e instale Ruby en Windows

Paso 6) Instalar MSYS2.
Este paso instala MSYS2, una plataforma de compilaciรณn que cuenta con un administrador de paquetes para una fรกcil instalaciรณn de paquetes en Windows.

Presione Enter para instalar todos los componentes, ya que todos son necesarios para un entorno de desarrollo Ruby on Rails fluido. Windows.

Descargue e instale Ruby en Windows

Instalaciรณn de rieles

Debes tener Ruby instalado desde la secciรณn anterior. A continuaciรณn, instala Rails. Puedes instalar Rails usando un paquete de Instalador de rielespero el paquete a menudo no incluye la รบltima versiรณn de todas las dependencias necesarias.

Si ya tienes instalada la รบltima versiรณn de Ruby y las extensiones y gemas RubyGems bรกsicas, simplemente ejecuta el siguiente comando en la lรญnea de comandos para instalar Rails en tu sistema: gem install rails.

Tambiรฉn necesitarรกs instalar Node.js si aรบn no lo tienes, porque algunas bibliotecas de las que depende Rails requieren un JavaEl entorno de ejecuciรณn del script debe funcionar correctamente. Obtenga Node en https://nodejs.org.

Un enfoque mรกs comรบn y preferido sobre Windows es usar el Windows Subsistema para Linux. Proporciona un entorno GNU/Linux con herramientas de lรญnea de comandos, utilidades y aplicaciones comunes directamente dentro de Windows.

Instalaciรณn de Ruby en Mac

Tu Mac ya tiene Ruby preinstalado. Sin embargo, la versiรณn preinstalada suele estar desactualizada, por lo que deberรญas instalar una versiรณn mรกs reciente.

La forma mรกs sencilla de hacerlo es utilizar un gestor de paquetes como HomebrewEs posible que primero necesites instalar Homebrew ejecutando el siguiente comando en la Terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Aparecerรก una advertencia y se te pedirรก que introduzcas tu contraseรฑa. Introduce la contraseรฑa de tu Mac (los caracteres no se mostrarรกn mientras escribes) y pulsa Intro cuando termines. A continuaciรณn, ejecuta este comando de Homebrew para instalar Ruby en tu Mac.

brew install ruby

Luego ejecuta este comando:

echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile

Esto configura la nueva instalaciรณn de Ruby como la versiรณn predeterminada de Ruby en su sistema, en lugar de la versiรณn preinstalada.

Para confirmar que la instalaciรณn se realizรณ correctamente, ejecute lo siguiente en la terminal:

ruby --version

Esto imprime el nรบmero de versiรณn de Ruby que tienes instalada. La salida se ve algo asรญ:

ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

Instalando Ruby en Ubuntu (Linux)

La forma mรกs sencilla de instalar Ruby en Ubuntu es a travรฉs del gestor de paquetes apt. Ejecute los siguientes comandos en la Terminal para instalar la รบltima versiรณn de Ruby desde el Ubuntu repositorios.

  • sudo apt update โ€“ Esto actualiza la configuraciรณn predeterminada Ubuntu repositorios.
  • sudo apt install ruby-full โ€“ Esto descarga e instala la รบltima versiรณn de Ruby.

Para confirmar la instalaciรณn, ejecute ruby โ€“versiรณnEsto muestra la versiรณn de Ruby que tienes instalada.

Instalaciรณn de rieles en Ubuntu (Linux)

Sigue los pasos que se indican a continuaciรณn para instalar Rails en tu mรกquina Linux.

Paso 1) Actualiza tu gestor de gemas ejecutando gem update โ€“system en la terminal o en el sรญmbolo del sistema.

Paso 2) Ejecutar gema instalar rieles para instalar la รบltima versiรณn de Rails en su computadora.

Paso 3) Instala la gema bundler para una gestiรณn sencilla de las dependencias de gemas de la aplicaciรณn Rails. Ejecuta gem install bundler.

Dos principios de los rieles

Rails sigue los principios bรกsicos del diseรฑo de software y te anima a que tรบ tambiรฉn los uses.

Los dos mรกs comunes son:

  • No se repita (SECO) Esto da como resultado un cรณdigo conciso, coherente y fรกcil de mantener.
  • Convenciรณn sobre configuraciรณn Rails viene preconfigurado con valores predeterminados sensatos que se adaptan a la mayorรญa de los usos comunes. Esto agiliza el desarrollo de aplicaciones y reduce la cantidad de cรณdigo que hay que mantener.

Rails โ€“ Estructuras de archivos de proyecto

Con Rails instalado en tu sistema, crea una aplicaciรณn Rails. Las siguientes secciones muestran un ejemplo con Ruby on Rails mediante la creaciรณn de una aplicaciรณn de lista de tareas. Ejecuta el siguiente comando en tu terminal para crear la aplicaciรณn:

rails new todo_app

Este comando crea un directorio llamado aplicaciรณn de tareas en el directorio actual con la estructura de carpetas bรกsica de una aplicaciรณn web Rails, como se muestra a continuaciรณn.

Rails โ€“ Estructuras de archivos de proyecto

Estos son los directorios principales generados para el proyecto:

applicaciรณn โ€“ Agrupa subdirectorios para la interfaz de usuario/diseรฑo (vistas y funciones auxiliares), el controlador (archivos de controladores) y los modelos (lรณgica de negocio/aplicaciรณn).

aplicaciรณn / controladores โ€“ Almacena los archivos del controlador que utiliza Rails para gestionar las solicitudes del cliente.

aplicaciรณn / activos โ€“ Contiene archivos estรกticos necesarios para la interfaz de usuario de la aplicaciรณn, agrupados por tipo: JavaScript archivos, imรกgenes y hojas de estilo.

aplicaciรณn / ayudantes โ€“ Contiene funciones auxiliares que mantienen el modelo de la aplicaciรณn, la vista y la lรณgica del controlador centrados, concisos y ordenados.

aplicaciรณn/modelos โ€“ Contiene archivos que modelan la base de datos de su aplicaciรณn. Las clases del modelo facilitan enormemente el trabajo con la base de datos.

aplicaciรณn / vistas โ€“ Contiene los archivos de plantilla/diseรฑo con los que interactรบa el usuario de su aplicaciรณn. Las plantillas combinan HTML con datos de la base de datos.

papelera โ€“ Contiene los scripts de Rails que inician tu aplicaciรณn. Tambiรฉn puede incluir otros scripts que uses para configurar y actualizar la aplicaciรณn.

config โ€“ contiene archivos de configuraciรณn como base de datos.yml, entorno.rb, rutas.rb, etc., que su aplicaciรณn necesita para funcionar.

db โ€“ Contiene archivos y scripts utilizados para administrar la base de datos de su aplicaciรณn.

lib โ€“ Contiene mรณdulos extendidos para su aplicaciรณn.

log โ€“ contiene archivos de registro como servidor.log, desarrollo.log, prueba.log y producciรณn.log, utilizado para depurar o supervisar su aplicaciรณn.

pรบblico โ€“ contiene archivos estรกticos y recursos compilados, como archivos HTML, JavaArchivos de script, imรกgenes y hojas de estilo.

compruรฉbalo โ€“ Contiene los archivos de prueba que usted escribe para probar la funcionalidad de su aplicaciรณn.

tmp โ€“ contiene archivos temporales como archivos de cachรฉ y archivos PID.

vendedor โ€“ Contiene bibliotecas de terceros.

Archivo de gemas โ€“ especifica los requisitos bรกsicos de gemas para ejecutar tu aplicaciรณn web. Puedes agrupar las gemas en desarrollo, prueba o producciรณn, y Rails sabrรก cuรกndo incluir cada una.

Gemfile.lock A diferencia del Gemfile, que enumera explรญcitamente las gemas que deseas en tu aplicaciรณn, el Gemfile.lock contiene ademรกs otras gemas de las que dependen las que aparecen en el Gemfile. Estas se instalan automรกticamente para satisfacer las dependencias.

Lรฉame.md โ€“ Utilice este archivo para compartir detalles esenciales sobre su aplicaciรณn, como quรฉ hace la aplicaciรณn y cรณmo instalarla y ejecutarla.

archivo de rake โ€“ Contiene varias definiciones de tareas de Rake que ayudan a automatizar las tareas de administraciรณn diarias de su aplicaciรณn.

config.ru โ€“ Un archivo de configuraciรณn de Rack que proporciona una interfaz al servidor web para iniciar su aplicaciรณn.

Cambiar de directorio al aplicaciรณn de tareas directorio Rails generado y ejecutado servidor de rieles para iniciar la aplicaciรณn. Tipo localhost: 3000 En la barra de direcciones de tu navegador web. Si todo saliรณ bien, deberรญas ver la pantalla que aparece a continuaciรณn.

Rails โ€“ Estructuras de archivos de proyecto

Esta es la pรกgina de inicio predeterminada de su aplicaciรณn. La cambiarรก en una secciรณn posterior de este tutorial de Ruby on Rails. Puede detener el servidor presionando Ctrl + C.

Rails โ€“ Generar comandos

El comando `generate` de Rails utiliza plantillas para crear muchos elementos รบtiles en tu aplicaciรณn. Estos generadores ahorran mucho tiempo.

Escriben cรณdigo repetitivo necesario para que tu aplicaciรณn web funcione. Ejecutar generar rieles Ejecรบtelo por sรญ mismo en el sรญmbolo del sistema o en la terminal para ver una lista de los generadores disponibles, como se muestra a continuaciรณn.

Rails โ€“ Generar comandos

Tambiรฉn puedes correr generar rieles Para ver una descripciรณn de lo que hace el comando. Enumera opciones รบtiles y un ejemplo de uso. La siguiente figura muestra la salida de la ejecuciรณn Rails genera un controlador.

Rails โ€“ Generar comandos

Utilice el comando rails generate scaffold para crear automรกticamente el modelo, la vista y el controlador para la aplicaciรณn de lista de tareas pendientes que estรก creando. Ejecute lo siguiente en su terminal (asegรบrese de que todavรญa estรฉ en el aplicaciรณn de tareas directorio):

rails generate scaffold todo_list title:string description:text

Esto crea una interfaz web CRUD (Crear, Leer, Actualizar, Eliminar) completa para la tabla TodoLists.

Otro comando รบtil para saber es rieles destruir. Revierte lo que sea generar rieles hace.

Rieles โ€“ Enrutamiento

El sistema de enrutamiento de Rails, llamado Rails Router, maneja todas las solicitudes entrantes a su aplicaciรณn web. Examina el URL de cada solicitud y la asigna a la acciรณn del controlador responsable de manejarla, utilizando la sintaxis especificada en el archivo de rutas (config / routes.rb).

El archivo de rutas controla cada URL aspecto de su aplicaciรณn web. Rails utiliza un diseรฑo RESTful basado en el estilo arquitectรณnico REST, que proporciona un mapa.ping entre verbos HTTP y solicitud URLs a las acciones del controlador.

El archivo de rutas se generรณ cuando ejecutรณ nuevos raรญles Anteriormente. Continuando con la aplicaciรณn de tareas pendientes que estรก creando, ejecute lo siguiente:

rails db:migrate

Asegรบrese de que todavรญa se encuentra en la raรญz de la aplicaciรณn (la aplicaciรณn de tareas directorio).

Reinicie el servidor con servidor de rieles. Tipo http://localhost:3000/todo_lists/ En tu navegador, pulsa Enter. Deberรญas ver una pรกgina web como la que aparece a continuaciรณn.

Rieles โ€“ Enrutamiento

Esta es la vista de listas de tareas pendientes que generรณ el comando scaffold, y estรก controlada por el controlador TodoListsController. รญndice acciรณn.

Agrega una lista de tareas pendientes haciendo clic en "Nueva lista de tareas pendientes" en la pรกgina. Deberรญas ver la pantalla que se muestra a continuaciรณn.

Rieles โ€“ Enrutamiento

Note la URL es ahora http://localhost:3000/todo_lists/newEsta es la pรกgina para crear una nueva lista de tareas pendientes, y estรก controlada por el controlador TodoListsController. ยกnuevos Socios! de mรฉtodo.

Introduce el tรญtulo y la descripciรณn de tu lista de tareas en el formulario y haz clic en โ€œCrear lista de tareasโ€. URL deberรญa cambiar a http://localhost:3000/todo_lists/1, Como se muestra abajo.

Rieles โ€“ Enrutamiento

Esta es la pรกgina de visualizaciรณn de una lista de tareas pendientes, controlada por el controlador TodoListsController. show mรฉtodo. Si vuelves a http://localhost:3000/todo_lists/Ahora deberรญa ver la pantalla a continuaciรณn con la nueva lista de tareas pendientes aรฑadida.

Rieles โ€“ Enrutamiento

Rails pudo asignar cada solicitud a la acciรณn correspondiente de TodoListsController utilizando la definiciรณn de ruta en config / routes.rb.

Si echas un vistazo a este archivo, verรกs una sola lรญnea. recursos :listas_de_todos, que es la forma predeterminada de Rails de escribir rutas RESTful. Esta รบnica lรญnea crea siete rutas, todas mapping al controlador TodoLists.

Por convenciรณn, cada acciรณn del controlador se corresponde con una operaciรณn CRUD (Crear, Leer, Actualizar, Eliminar) especรญfica en la base de datos.

Ejecutar rutas ferroviarias en su lรญnea de comandos para ver las distintas rutas disponibles en su aplicaciรณn. La siguiente figura muestra el resultado de la ejecuciรณn rutas ferroviarias.

Rieles โ€“ Enrutamiento

Rails โ€“ Vistas

La capa de vista es uno de los componentes del paradigma MVC y se encarga de generar la respuesta HTML para cada solicitud a tu aplicaciรณn. Rails utiliza ERB (Embedded Ruby) por defecto, que es un potente sistema de plantillas para Ruby.

ERB hace que las plantillas sean fรกciles de escribir y mantener al combinar texto plano con cรณdigo Ruby para la sustituciรณn de variables y el control de flujo. Una plantilla ERB utiliza el .html.erb extensiรณn.

Generalmente, utilizarรกs dos marcadores de etiquetas, cada uno de los cuales hace que el cรณdigo incrustado se procese y gestione de una manera particular.

Una etiqueta con un signo de igual <%= %> indica que el cรณdigo incrustado es una expresiรณn, y el resultado del cรณdigo debe sustituirse en la salida cuando se renderiza la plantilla.

La otra etiqueta sin signo igual <% %> indica al motor de renderizado que el resultado del cรณdigo no debe sustituirse ni imprimirse en la salida.

Cada controlador en su aplicaciรณn Rails tiene un subdirectorio correspondiente en aplicaciรณn / vistasy cada acciรณn en un controlador tiene una acciรณn correspondiente .html.erb archivo en ese subdirectorio.

Eche un vistazo a aplicaciรณn / vistas de la aplicaciรณn Todo que estรกs creando. Encontrarรกs un subdirectorio llamado listas_de_tareas que contiene .html.erb archivos con nombres que corresponden a las acciones en el TodoListas controlador.

Rails: ActiveRecord, patrรณn de registro activo y ORM

ActiveRecord es la implementaciรณn en Ruby del patrรณn Active Record. En este patrรณn, una clase representa una tabla de base de datos, y una instancia de la clase representa una fila en esa tabla.

ActiveRecord se conoce comรบnmente como un ORM (Mapeo Objeto-Relacional).ping) capa, una tรฉcnica que le permite administrar su base de datos utilizando un lenguaje con el que se sienta mรกs cรณmodo. Es independiente de la base de datos, por lo que puede cambiar fรกcilmente entre bases de datos, por ejemplo, SQLite, MySQL, PostgreSQL, SQL Server o Oracle โ€” utilizando el mismo cรณdigo y lรณgica.

Por ejemplo, para obtener una matriz que contenga todas las listas de tareas pendientes de su aplicaciรณn, no es necesario escribir cรณdigo que abra una conexiรณn, ejecute una consulta SQL SELECT y convierta el resultado.

Solo tienes que escribir Lista de tareas.todoy ActiveRecord devuelve el array lleno de objetos TodoList que puedes usar como quieras.

Todo lo que necesitas hacer es configurar la configuraciรณn en config / database.ymlActiveRecord gestiona las diferencias entre los sistemas de bases de datos. Al cambiar de una base de datos a otra, no es necesario reescribir el cรณdigo.

Tรบ te centras en la lรณgica de la aplicaciรณn, y ActiveRecord se encarga de los detalles de bajo nivel para conectarse a la base de datos. Utiliza convenciones de nomenclatura para asignar los modelos a las tablas de la base de datos.

Rails pluraliza los nombres de las clases de tu modelo para encontrar la tabla de la base de datos correspondiente. Por lo tanto, para una clase Lista de quehaceres, ActiveRecord utiliza una tabla de base de datos llamada listas_de_tareas.

Rieles โ€“ Migraciones

Una migraciรณn de Rails es un script que se utiliza para modificar la base de datos de una aplicaciรณn. Se usa para configurar o cambiar la base de datos sin escribir cรณdigo SQL manualmente.

Utiliza Ruby para definir los cambios en el esquema de la base de datos y permite usar el control de versiones para mantener la base de datos sincronizada en diferentes entornos.

Las migraciones de Rails utilizan un lenguaje especรญfico de dominio (DSL) de Ruby. Esto actรบa como un abstracy permite utilizar o cambiar el motor de la base de datos segรบn sus necesidades.

Las migraciones se pueden compartir con cualquier persona que trabaje en la aplicaciรณn y tambiรฉn se pueden revertir para deshacer los cambios. Este es un mecanismo de seguridad robusto, por lo que no tiene que preocuparse por daรฑar permanentemente su base de datos.

Rails โ€“ Asociaciones ActiveRecord

Una conexiรณn entre dos modelos ActiveRecord se conoce como asociaciรณn. Las asociaciones facilitan enormemente la realizaciรณn de operaciones en registros relacionados en el cรณdigo. Existen cuatro categorรญas comunes.

Cara a cara: Un registro contiene precisamente una instancia de otro modelo. Un buen ejemplo es un perfil de usuario: un usuario tiene solo un perfil. Utiliza el tiene_uno palabra clave.

Uno a muchos: La asociaciรณn mรกs comรบn: un modelo tiene cero o mรกs instancias de otro modelo. Utilice el tiene_muchos palabra clave para indicar esta asociaciรณn.

Muchos a muchos: Un poco mรกs complicado. ActiveRecord ofrece dos maneras de manejarlo: tiene_y_pertenece_a_muchos y tiene_muchos :a travรฉs, lo que te da acceso al modelo de uniรณn definido en una tabla separada.

Polimรณrfico de uno a muchos: Una asociaciรณn mรกs avanzada en Rails. Define un modelo que puede pertenecer a muchos modelos diferentes en una sola asociaciรณn.

Rails โ€“ Validaciones de ActiveRecord

La validaciรณn ayuda a garantizar que disponga de datos correctos, ya que trabajar con datos errรณneos es arriesgado y puede costarle dinero a su empresa.

La validaciรณn tambiรฉn proporciona una capa adicional de seguridad contra usuarios malintencionados que intentan insertar datos daรฑinos en la base de datos. Rails ofrece una API limpia con funciones de validaciรณn en ActiveRecord que mantienen la base de datos limpia, segura y libre de errores.

Las validaciones de ActiveRecord se ejecutan en los objetos del modelo antes de guardarlos en la base de datos, lo que las hace mรกs fiables y sigue las mejores prรกcticas.

Los siguientes mรฉtodos de ActiveRecord activan validaciones cuando se llaman en objetos del modelo: ยกcrea, crea!, ยกguarda, guarda!, actualiza y actualiza!. Las versiones de bang (ยกCrea!, ยกGuarda!, ยกActualiza!) generan una excepciรณn si el registro no es vรกlido, mientras que las versiones sin signo de exclamaciรณn devuelven falso en su lugar.

Los ayudantes de validaciรณn de ActiveRecord mรกs comunes son:

  • confirmaciรณn: Valida que dos campos tengan el mismo valor, por ejemplo, contraseรฑa y confirmaciรณn de contraseรฑa. Se utiliza junto con la funciรณn auxiliar de validaciรณn de presencia.
  • Presencia: Comprueba que el campo no estรฉ vacรญo.
  • Unicidad: Garantiza un valor รบnico para un campo, por ejemplo, el nombre de usuario.
  • Eslora: impone un lรญmite a la longitud de caracteres de un campo.

Tambiรฉn puede crear su propia validaciรณn personalizada utilizando el validar mรฉtodo y pasรกndole el nombre de un mรฉtodo de validaciรณn personalizado.

Comprueba el modelo errores Este objeto permite averiguar por quรฉ fallรณ una validaciรณn. Esto proporciona todo lo necesario para que su aplicaciรณn sea mรกs segura y con mayores restricciones, permitiendo รบnicamente el acceso a datos vรกlidos en su base de datos.

Rieles โ€“ Controlador de acciรณn

El controlador Rails es el centro de su aplicaciรณn web. Facilita y coordina la comunicaciรณn entre el usuario, los modelos y las vistas.

Sus clases de controlador heredan de Controlador de aplicaciones, que contiene cรณdigo que puede ejecutarse en todos los demรกs controladores, y que a su vez hereda de ActionController::Base.

El controlador proporciona lo siguiente a su aplicaciรณn:

  • Redirige las solicitudes externas a las acciones internas.
  • Gestiona el almacenamiento en cachรฉ, lo que mejora el rendimiento de tu aplicaciรณn.
  • Gestiona mรฉtodos auxiliares que amplรญan las capacidades de las plantillas de vista y tambiรฉn gestiona las sesiones de usuario, lo que proporciona a los usuarios una experiencia fluida.

Rieles โ€“ Configuraciones

Puedes configurar componentes como inicializadores, recursos, generadores y middlewares utilizando los archivos de inicializaciรณn y configuraciรณn de tu aplicaciรณn Rails en el config directorio. Archivos como config/application.rb, config/environments/development.rb, y config/environments/test.rb se utilizan aquรญ. Tambiรฉn puede agregar configuraciones personalizadas para su aplicaciรณn.

Rieles โ€“ Depuraciรณn

A medida que desarrolles tu aplicaciรณn, necesitarรกs depurar tu cรณdigo. Rails facilita esto con el adiรณs bicho gema. Puedes iniciar una sesiรณn de depuraciรณn colocando la palabra clave adiรณs bicho en cualquier parte del cรณdigo de su aplicaciรณn.

Esto detiene temporalmente la ejecuciรณn en ese punto. La gema byebug ofrece varios comandos. Los mรกs รบtiles son:

  • siguiente: pasa a la siguiente lรญnea de cรณdigo, saltaping todos los mรฉtodos invocados por la lรญnea actual.
  • paso: similar a Nextpero entra en cada mรฉtodo invocado.
  • rotura: Detiene la ejecuciรณn del cรณdigo.
  • continuar: Continรบa la ejecuciรณn del cรณdigo.

Hay otras gemas de depuraciรณn disponibles, como palancaTodas ofrecen funcionalidades similares con sintaxis ligeramente diferente. No se recomienda usar gemas de depuraciรณn en producciรณn, ya que suponen riesgos para la aplicaciรณn y una mala experiencia para los usuarios.

Los archivos de registro se pueden inspeccionar en busca de errores en producciรณn y gestionarlos segรบn corresponda. Tambiรฉn se recomienda seguir un enfoque de Desarrollo Guiado por Pruebas (TDD) al crear la aplicaciรณn para garantizar que todo funcione correctamente antes de implementarla en producciรณn.

Preguntas Frecuentes

Sรญ. Rails sigue siendo la base de GitHub, Shopify y Basecamp, y la versiรณn 7 ha incorporado Hotwire, la importaciรณn de mapas y compatibilidad integrada con el editor Trix. Sigue siendo una excelente opciรณn para equipos que necesitan iterar rรกpidamente con convenciones probadas.

Rails utiliza Ruby, Django usos PythonAmbos son frameworks MVC de pila completa con ORM robustos. Rails se basa en convenciones y generadores de cรณdigo, mientras que Django ofrece una interfaz de administraciรณn y una configuraciรณn explรญcita mรกs estricta que muchos equipos prefieren para proyectos con gran cantidad de datos.

Las rutas de implementaciรณn comunes incluyen: HerokuRender, Fly.io y AWS a travรฉs de Capistrano o Docker. La mayorรญa de los equipos precompilan los recursos con rake assets:precompile, configuran RAILS_ENV=production, ejecutan rails db:migrate y sirven la aplicaciรณn detrรกs de Puma mรกs Nginx o un balanceador de carga administrado.

Sรญ. Los asistentes de IA pueden generar modelos, sugerir consultas de ActiveRecord, redactar pruebas RSpec y revisar migraciones. Siempre revise el cรณdigo generado segรบn las convenciones de Rails y las directrices de seguridad antes de confirmar los cambios, especialmente en lo que respecta a la autenticaciรณn y los cambios en la base de datos.

Las aplicaciones Rails suelen llamar a proveedores de IA mediante SDK de Ruby o clientes HTTP como Faraday, almacenan las solicitudes y respuestas en modelos ActiveRecord y gestionan tareas largas con Sidekiq. Gemas como ruby-openai y langchainrb simplifican la integraciรณn de funciones de IA modernas.

Resumir este post con: