Cómo Instalar y Usar una Gema en Ruby on Rails
En esta página:
Cuando estas trabajando con el framework Ruby on Rails.
En ocasiones necesitas instalar una gema o paquete que añada cierta característica a tu proyecto.
En este tutorial te enseñaré a Cómo Instalar y Usar una Gema en Ruby on Rails, vamos con ello.
Para este tutorial usaré la gema simple-random, esta gema me permite generar números aleatorios.
Creación de Nuevo Proyecto
Creo un proyecto con el nombre miapp, tu le puedes dar el nombre que desees.
Para crear el proyecto ejecuto el siguiente comando en mi consola o terminal de comandos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
rails new miapp create create README.md create Rakefile create .ruby-version create config.ru create .gitignore create .gitattributes create Gemfile run git init from "." Initialized empty Git repository in D:/contenidos/nc/tutoriales/blog/miapp/.git/ create app create app/assets/config/manifest.js create app/assets/stylesheets/application.css ... ... (Continua la creación del proyecto) ... ... Using websocket 1.2.11 Using selenium-webdriver 4.23.0 Using sprockets 4.2.1 Using sprockets-rails 3.5.2 Using sqlite3 1.7.3 (x64-mingw-ucrt) Using stimulus-rails 1.3.3 Using turbo-rails 2.0.6 Using tzinfo-data 1.2024.1 Using web-console 4.2.1 Bundle complete! 14 Gemfile dependencies, 84 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. Run turbo:install:redis to switch on Redis and use it in development for turbo streams |
Luego de ejecutar el comando anterior, Ruby on Rails me ha creado la siguiente estructura de directorios y archivos para el proyecto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/miapp ├── /app ├── /bin ├── /config ├── /db ├── /lib ├── /log ├── /public ├── /storage ├── /test ├── /tmp ├── /vendor ├── .dockerignore ├── .gitattributes ├── .gitignore ├── .ruby-version ├── config.ru ├── Dockerfile ├── Gemfile ├── Gemfile.lock ├── Rakefile ├── README.md |
Ingresamos al directorio del proyecto ejecutando el siguiente comando en nuestra consola o terminal de comandos:
1 2 3 4 |
# Comando para ingresar al directorio del proyecto cd miapp |
Instalación de la Gema o Paquete
En Ruby on Rails podemos instalar una gema o paquete de 2 formas:
Mediante un Comando
Para instalar nuestro paquete usando un comando, debemos usar el comando gem install ‘nombre de la gema o paquete‘.
Por ejemplo para instalar la gema simple-random, ejecutamos el siguiente comando:
1 2 3 4 5 6 7 8 9 10 11 |
gem install simple-random Fetching simple-random-1.0.3.gem Using rubygems directory: C:/Users/jrclu/.local/share/gem/ruby/3.2.0 Successfully installed simple-random-1.0.3 Parsing documentation for simple-random-1.0.3 Installing ri documentation for simple-random-1.0.3 Done installing documentation for simple-random after 0 seconds 1 gem installed |
Luego de ejecutar el comando anterior ya tienes instalada la gema o paquete correctamente.
Mediante el archivo Gemfile
Si no puedes instalar tu gema o paquete mediante comando, también puedes usar el archivo Gemfile.
Este archivo lo crea automáticamente Ruby on Rails, luego de crear el proyecto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/miapp ├── /app ├── /bin ├── /config ├── /db ├── /lib ├── /log ├── /public ├── /storage ├── /test ├── /tmp ├── /vendor ├── .dockerignore ├── .gitattributes ├── .gitignore ├── .ruby-version ├── config.ru ├── Dockerfile ├── Gemfile // Abre este archivo ├── Gemfile.lock ├── Rakefile ├── README.md |
Abre el archivo Gemfile y coloca la siguiente línea en el:
1 2 3 4 |
# Código para instalar la gema o el paquete 'simple-random' gem 'simple-random', '~> 1.0', '>= 1.0.3' |
En el archivo Gemfile encontrarás otras gemas que Ruby on Rails has instalado para que funcione correctamente, no las toques.
Por último ejecutamos el siguiente comando para instalar la nueva gema o dependencia que añadimos al archivo Gemfile:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
bundle install Fetching gem metadata from https://rubygems.org/......... Resolving dependencies... Using rake 13.2.1 Using base64 0.2.0 Using bigdecimal 3.1.8 Using concurrent-ruby 1.3.4 ... ... (Continua la instalación de la gema o paquete) ... ... Using stimulus-rails 1.3.3 Using turbo-rails 2.0.6 Using web-console 4.2.1 Using rails 7.1.3.4 Installing simple-random 1.0.3 Bundle complete! 15 Gemfile dependencies, 85 gems now installed. Use `bundle info [gemname]` to see where a bundled gem is installed. |
El comando bundle install nos instala nuestra gema o paquete sin problemas.
Asimismo el comando bundle install nos instala otras gemas que son necesarias para que Ruby on Rails trabaje sin problemas.
Usando la Gema o Paquete
Ya que la gema que instalamos genera números aleatorios.
Lo que haré es mostrarlos en una página o vista HTML.
Creación del Controlador
Creo un controlador ejecutando el siguiente comando (le pondré de nombre numeros, tu le puedes poner el nombre que desees):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
rails g controller numeros index leer crear actualizar create app/controllers/numeros_controller.rb route get 'numeros/index' get 'numeros/leer' get 'numeros/crear' get 'numeros/actualizar' invoke erb create app/views/numeros create app/views/numeros/index.html.erb create app/views/numeros/leer.html.erb create app/views/numeros/crear.html.erb create app/views/numeros/actualizar.html.erb invoke test_unit create test/controllers/numeros_controller_test.rb invoke helper create app/helpers/numeros_helper.rb invoke test_unit |
Luego de ejecutar el comando anterior se me ha creado el archivo numeros_controller.rb en miapp > app > controllers > numeros_controller.rb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
/miapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /concerns ├── application_controller.rb ├── postres_controller.rb // Se ha creado este Archivo ├── /helpers ├── /javascript ├── /jobs ├── /mailers ├── /models ├── /views ├── /bin ├── /config ├── /db ├── /lib ├── /log ├── /public ├── /storage ├── /test ├── /tmp ├── /vendor ├── .gitignore ├── .ruby-version ├── config.ru ├── Gemfile ├── Gemfile.lock ├── package.json ├── Rakefile ├── Gemfile.lock ├── README.md |
Abrimos el archivo numeros_controller.rb y dentro de la función o método index cargamos nuestra página HTML.
Asimismo, hacemos uso de la gema o paquete simple-random (He colocado comentarios para explicar que hacen las líneas del código):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
class NumerosController < ApplicationController # Ruta principal de la vista @root_url = "/numeros/index" # Soporte para layouts layout 'application' # Método para cargar la página HTML def index # Instanciamos el paquete 'simple-random' r = SimpleRandom.new # Generamos un número aleatorio @numero_aleatorio = r.set_seed end def leer end def crear end def actualizar end end |
Configuración de la Ruta
Abrimos el archivo routes.rb que se encuentra en config > routes.rb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
/miapp ├── /app ├── /bin ├── /config ├── /environments ├── /initializers ├── /locales ├── application.rb ├── boot.rb ├── cable.yml ├── credentials.yml.enc ├── database.yml ├── environment.rb ├── importmap.rb ├── master.key ├── puma.rb ├── routes.rb // Abre este archivo ├── storage.yml ├── /db ├── /lib ├── /log ├── /public ├── /storage ├── /test ├── /tmp ├── /vendor ├── .gitignore ├── .ruby-version ├── config.ru ├── Gemfile ├── Gemfile.lock ├── package.json ├── Rakefile ├── Gemfile.lock ├── README.md |
Dentro del archivo routes.rb sobre el final agregamos la ruta root “numeros#index”:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Rails.application.routes.draw do get 'numeros/index' # Ruta de la vista HTML get 'numeros/leer' get 'numeros/crear' get 'numeros/actualizar' # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html # Reveal health status on /up that returns 200 if the app boots with no exceptions, otherwise 500. # Can be used by load balancers and uptime monitors to verify that the app is live. get "up" => "rails/health#show", as: :rails_health_check # Defines the root path route ("/") root "numeros#index" # Ruta para la vista HTML end |
Creación de la Vista HTML
Por ultimo abrimos el archivo index.html.rb que se encuentra en miapp > app > views > numeros > index.html.rb:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
/miapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /helpers ├── /javascript ├── /jobs ├── /mailers ├── /models ├── /views ├── /layouts ├── /numeros ├── actualizar.html.rb ├── crear.html.rb ├── index.html.rb // Abre este archivo ├── leer.html.rb ├── /bin ├── /config ├── /db ├── /lib ├── /log ├── /public ├── /storage ├── /test ├── /tmp ├── /vendor ├── .gitignore ├── .ruby-version ├── config.ru ├── Gemfile ├── Gemfile.lock ├── package.json ├── Rakefile ├── Gemfile.lock ├── README.md |
Dentro del archivo index.html.rb agregamos lo siguiente:
1 2 3 4 5 6 7 8 |
<h1>Cómo Instalar y Usar una Gema en Ruby on Rails</h1> <p>Número aleatorio:</p> <!-- Mostramos un número aleatorio --> <%= @numero_aleatorio %> |
Ejecutando el Servidor de Ruby on Rails
Iniciamos el servidor de Ruby on Rails con el siguiente comando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
rails server => Booting Puma => Rails 7.1.3.4 application starting in development => Run `bin/rails server --help` for more startup options *** SIGUSR2 not implemented, signal based restart unavailable! *** SIGUSR1 not implemented, signal based restart unavailable! *** SIGHUP not implemented, signal based logs reopening unavailable! Puma starting in single mode... * Puma version: 6.4.2 (ruby 3.2.2-p53) ("The Eagle of Durango") * Min threads: 5 * Max threads: 5 * Environment: development * PID: 26564 * Listening on http://[::1]:3000 * Listening on http://127.0.0.1:3000 Use Ctrl-C to stop |
Si vamos a la ruta local http://localhost:3000/ en nuestro navegador.
Podemos ver que el número aleatorio de genera sin problemas:
Así de fácil puedes Instalar y Usar una Gema o Paquete en Ruby on Rails.
Conclusión
En este tutorial has aprendido a Cómo Instalar y Usar una Gema en Ruby on Rails.
Te será de guía para que instales tus gemas o paquetes en el framework Ruby on Rails.
Recuerda que siempre debes practicar mucho para poder dominar Ruby on Rails.
Nota(s)
- No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo.
Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.
- Ruby on Rails
- 13-08-2024
- 14-08-2024
- Crear un Post - Eventos Devs - Foro
Social
Redes Sociales (Developers)
Redes Sociales (Digital)