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

En la parte anterior llamada Creando una Aplicación Web similar a SoundCloud con Ruby on Rails 6 y Angular 10 – Parte 4, creamos 2 controladores, uno para el módulo configuración y otro para el módulo canciones del usuario, cada controlador nos creo sus páginas HTML correspondientes y que usaremos posteriormente, en esta parte 5 continuaremos con la creación de nuestro proyecto SoundCloud, vamos con ello.

Partes

Antes de continuar te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “17 – Porque El Lenguaje De Programación Python Es Tan Popular”:

Spotify SoundCloud 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 5. 

Ahora vamos a crear el controlador Usuarios que va servir para gestionar los usuarios que se registran en la plataforma y va alimentar al back y también a la parte publica (front).

Usuarios

Para crear este controlador ejecuto el siguiente comando en mi consola de comandos, a este comando le voy a pasar 4 argumentos que serán las vistas administrativas (index, leer, crear y actualizar) para gestionar los usuarios registrados en la plataforma.

rails g controller usuarios index leer crear actualizar 

      create  app/controllers/usuarios_controller.rb
       route  get 'usuarios/index'
get 'usuarios/leer'
get 'usuarios/crear'
get 'usuarios/actualizar'
      invoke  erb
      create    app/views/usuarios
      create    app/views/usuarios/index.html.erb
      create    app/views/usuarios/leer.html.erb
      create    app/views/usuarios/crear.html.erb
      create    app/views/usuarios/actualizar.html.erb
      invoke  test_unit
      create    test/controllers/usuarios_controller_test.rb
      invoke  helper
      create    app/helpers/usuarios_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/usuarios.scss

Tras ejecutar el comando anterior, se me ha creado un archivo llamado usuarios_controller.rb en app > controllers > usuarios_controller.rb

/soundcloudapp 
├── /app
    ├── /assets 
    ├── /channels 
    ├── /controllers 
        ├── /concerns 
        ├── application_controller.rb 
        ├── configuracion_controller.rb 
        ├── cancionesusuarios_controller.rb 
        ├── usuarios_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

Adicionalmente se me ha creado otros archivos como las vistas HTML, estas vistas se han creado en app > views > usuarios

/soundcloudapp 
├── /app
    ├── /assets 
    ├── /channels 
    ├── /controllers 
    ├── /helpers
    ├── /javascript
    ├── /jobs
    ├── /mailers
    ├── /models
    ├── /views
        ├── /cancionesusuarios 
        ├── /configuracion 
        ├── /layouts 
        ├── /usuarios // Vistas HTML del módulo 'usuarios' 
            ├── actualizar.html.erb 
            ├── crear.html.erb 
            ├── index.html.erb 
            ├── leer.html.erb 
├── /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

Listo, ahora pasemos a crear el siguiente controlador.

Historial de Reproducciones

Este controlador va gestionar las canciones que han sido escuchadas por los usuarios en la plataforma. Ejecuto el siguiente comando para crear este controlador, igual que con el anterior controlador, le paso 4 argumentos para que genere 4 vistas HTML para este módulo.

rails g controller historialreproducciones index leer crear actualizar
      create  app/controllers/historialreproducciones_controller.rb
       route  get 'historialreproducciones/index'
get 'historialreproducciones/leer'
get 'historialreproducciones/crear'
get 'historialreproducciones/actualizar'
      invoke  erb
      create    app/views/historialreproducciones
      create    app/views/historialreproducciones/index.html.erb
      create    app/views/historialreproducciones/leer.html.erb
      create    app/views/historialreproducciones/crear.html.erb
      create    app/views/historialreproducciones/actualizar.html.erb
      invoke  test_unit
      create    test/controllers/historialreproducciones_controller_test.rb
      invoke  helper
      create    app/helpers/historialreproducciones_helper.rb
      invoke    test_unit
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/historialreproducciones.scss

Luego de ejecutar el comando anterior, Rails nos ha creado el archivo llamado historialreproducciones_controller.rb en app > controllers > historialreproducciones_controller.rb 

/soundcloudapp 
├── /app
    ├── /assets 
    ├── /channels 
    ├── /controllers 
    ├── /helpers
    ├── /javascript
    ├── /jobs
    ├── /mailers
    ├── /models
    ├── /views
        ├── /cancionesusuarios 
        ├── /configuracion 
        ├── /historialreproducciones // Vistas HTML del módulo 'historialreproducciones' 
            ├── actualizar.html.erb 
            ├── crear.html.erb 
            ├── index.html.erb 
            ├── leer.html.erb 
        ├── /layouts 
        ├── /usuarios 
├── /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

Y hasta aquí hemos creado los 4 controladores o archivos: cancionesusuarios_controller.rb, configuracion_controller.rbhistorialreproducciones_controller.rb y usuarios_controller.rb para el administrador de la plataforma.

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 organizar las vistas del administrador, para posteriormente comenzar con la creación de las vistas administrativas.
  • 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.