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.