Creando una Aplicación Web similar a SoundCloud con Ruby on Rails 6 y Angular 10 – Parte 4

En esta página:
En la Parte anterior de este tutorial llamada Creando una Aplicación Web similar a SoundCloud con Ruby on Rails 6 y Angular 10 – Parte 3 creamos las migraciones para tablas en la base de datos de nuestra aplicación, definimos los campos y las relaciones entre las tablas, las relaciones pueden ser modificadas si es que es necesario más adelante, en esta 4ta parte vamos a comenzar a crear los controladores para los módulos de la aplicación, vamos con ello.
Partes
Antes de continuar te invito a leer los siguientes artículos:
- Que es Ruby on Rails (RoR) y otros detalles
- Tu primer Hola Mundo con Ruby on Rails
- Como crear un CRUD con Ruby on Rails 6 y Bootstrap 4 – Parte 1
- Como Integrar React JS (16.13.1) en Ruby on Rails (6.0.3.2)
- Lee más artículos en la categoría Ruby on Rails.
Asimismo te invito a escuchar el Podcast: “Que Hacer Cuando Estamos En Casa”:
Spotify: | Sound Cloud: | Apple Podcasts |
![]() |
![]() |
![]() |
Bien ahora continuemos con el Post: Creando una Aplicación Web similar a SoundCloud con Ruby on Rails 6 y Angular 10 – Parte 4.
Es importante considerar que la plataforma SoundCloud tomo muchos años en desarrollarse y ser lo que es actualmente, asimismo es soportada por muchos desarrolladores que trabajan en esa empresa, por ende no desarrollaremos todos los módulos, pero si los más importantes y necesarios.
Controladores
En Ruby on Rails podemos crear controladores, al crearlos se nos crean adicionalmente varios archivos como las vistas HTML que corresponden a cada controlador, estas vistas las estilizaré mas adelante con Bootstrap 4.
Configuración
Bien vamos a crear el primer controlador llamado configuracion, para esto ejecuto el siguiente comando en mi consola de comandos. A este comando le paso 4 argumentos que son las vistas administrativas (index, leer, crear y actualizar) para gestionar la configuración del usuario.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
rails g controller configuracion index leer crear actualizar create app/controllers/configuracion_controller.rb route get 'configuracion/index' get 'configuracion/leer' get 'configuracion/crear' get 'configuracion/actualizar' invoke erb create app/views/configuracion create app/views/configuracion/index.html.erb create app/views/configuracion/leer.html.erb create app/views/configuracion/crear.html.erb create app/views/configuracion/actualizar.html.erb invoke test_unit create test/controllers/configuracion_controller_test.rb invoke helper create app/helpers/configuracion_helper.rb invoke test_unit invoke assets invoke scss create app/assets/stylesheets/configuracion.scss |
Luego de ejecutar el comando anterior, se me ha creado un archivo llamado configuracion_controller.rb en app > controllers > configuracion_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 |
/soundcloudapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /concerns ├── application_controller.rb ├── configuracion_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 |
También puedes ver que se me han creado otros archivos, como las vistas HTML, estas se encuentran en app > views > configuracion
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 |
/soundcloudapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /helpers ├── /javascript ├── /jobs ├── /mailers ├── /models ├── /views ├── /configuracion // Vistas HTML del módulo 'configuracion' ├── actualizar.html.erb ├── crear.html.erb ├── index.html.erb ├── leer.html.erb ├── /layouts ├── /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 |
Bien ahora, vamos a crear el siguiente controlador para gestionar las canciones del usuario
Canciones del Usuario
Este controlador manejara la subida de las canciones de un usuario a la aplicación, para crear este controlador ejecuto el siguiente comando. Igual que con el controlador anterior le paso 4 argumentos para que genere las 4 vistas HTML para este módulo.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
rails g controller cancionesusuarios index leer crear actualizar create app/controllers/cancionesusuarios_controller.rb route get 'cancionesusuarios/index' get 'cancionesusuarios/leer' get 'cancionesusuarios/crear' get 'cancionesusuarios/actualizar' invoke erb create app/views/cancionesusuarios create app/views/cancionesusuarios/index.html.erb create app/views/cancionesusuarios/leer.html.erb create app/views/cancionesusuarios/crear.html.erb create app/views/cancionesusuarios/actualizar.html.erb invoke test_unit create test/controllers/cancionesusuarios_controller_test.rb invoke helper create app/helpers/cancionesusuarios_helper.rb invoke test_unit invoke assets invoke scss create app/assets/stylesheets/cancionesusuarios.scss |
Tras ejecutar el comando anterior, se me ha creado el archivo llamado cancionesusuarios_controller.rb en app > controllers > cancionesusuarios_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 36 |
/soundcloudapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /concerns ├── application_controller.rb ├── cancionesusuarios_controller.rb // Se ha creado este Archivo ├── configuracion_controller.rb ├── /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 |
También se me han creado otros archivos como las vistas HTML, estas vistas se han creado en app > views > cancionesusuarios
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 39 |
/soundcloudapp ├── /app ├── /assets ├── /channels ├── /controllers ├── /helpers ├── /javascript ├── /jobs ├── /mailers ├── /models ├── /views ├── /cancionesusuarios // Vistas HTML del módulo 'cancionesusuarios' ├── actualizar.html.erb ├── crear.html.erb ├── index.html.erb ├── leer.html.erb ├── /configuracion ├── /layouts ├── /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 |
Bien hasta aquí esta cuarta parte en donde creamos los controladores para 2 módulos importantes, el de configuración y para las canciones del usuario, estos 2 módulos formarán parte del administrador o lado back de la aplicación.
Ten Paciencia, lo que quiero es que entiendas todo el proceso para Crear este Proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje.
Nota (s)
- En la siguiente parte vamos a crear los controladores Usuarios e Historial de Reproducciones.
- No olvides que debemos utilizar 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.
Social
Redes Sociales (Developers)
Redes Sociales (Digital)