Introducción
Ruby on Rails (RoR) es un marco de aplicación web de código abierto, publicado bajo la licencia MIT. Es un marco de aplicación web del lado del servidor que sigue el concepto Modelo-Vista-Controlador (MVC).
Rails proporciona estructuras predefinidas para la base de datos, el servicio web y las páginas web. Más de 3000 desarrolladores han contribuido con código al marco de Rails y hay muchas aplicaciones conocidas basadas en Rails, como Github, Airbnb, Soundcloud, etc.
En este tutorial, le mostraremos cómo crear un proyecto con Ruby on Rails en Ubuntu 20.04 LTS Focal Fossa.
Prerrequisitos
Para esta guía, necesitará:
- Un usuario con privilegios de sudo.
- NodeJS instalado: Cómo instalar Node.js y NPM en Ubuntu 20.04 LTS.
- Yarn instalado: Cómo instalar Yarn en Ubuntu 18.40 LTS.
- Ruby instalado: Cómo instalar Ruby on Rails con rbenv en Ubuntu 20.04 LTS.
Si desea crear un proyecto con Ruby on Rails en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no usa el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar y configurar PostgreSQL
Para este tutorial, usaremos PostgreSQL como base de datos para nuestro proyecto Rails. Y en este paso, instalaremos el servidor de base de datos PostgreSQL proporcionado por el repositorio oficial de ubuntu.
Instale el servidor de base de datos PostgreSQL en Ubuntu 20.04 usando el comando apt a continuación.
sudo apt install postgresql postgresql-contrib libpq-dev -y
Una vez que se complete la instalación, inicie el servicio PostgreSQL y agréguelo al inicio del sistema.
systemctl start postgresql
systemctl enable postgresql
El servicio PostgreSQL está en funcionamiento.
Luego, inicie sesión en el shell de PostgreSQL y cree un nuevo rol "nov_role" con la contraseña "nov_pass" y los privilegios "createdb" e "login".
sudo -i -u postgres psql
create role nov_role with createdb login password 'nov_pass';
Ahora enumere todos los usuarios disponibles en PostgreSQL utilizando la siguiente consulta.
\du
Y obtendrá el rol "nov_role" en la lista de usuarios de PostgreSQL:
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
nov_role | Create DB | {}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
Salga del shell de PostgreSQL:
\q
Para obtener más información sobre PostgreSQL, lea: Cómo instalar PostgreSQL en Ubuntu 20.04 LTS.
Crea un proyecto con Ruby on Rails
De forma predeterminada, Ruby on Rails usa SQLite como base de datos predeterminada. Y para esta guía, vamos a iniciar un nuevo proyecto de Rails utilizando la base de datos PostgreSQL.
Cree un nuevo proyecto 'nov_app' con la base de datos PostgreSQL predeterminada usando el siguiente comando 'rails'.
rails new nov_app -d postgresql
Ahora obtendrá el directorio del proyecto 'nov_app', vaya al directorio del proyecto con el comando cd y cambie la configuración de la base de datos 'config /database.yml' usando el editor nano.
cd nov_app/
nano config/database.yml
En la development
, agregue la configuración de la base de datos como se muestra a continuación.
host: localhost
port: 5432
username: nov_role
password: nov_pass
Vaya a la testing
y agregue la configuración de la base de datos PostgreSQL como se muestra a continuación.
host: localhost
port: 5432
username: nov_role
password: nov_pass
Cuando termine, guarde y cierre el archivo presionando CTRL+X
luego Y
y ENTER
para confirmar los cambios.
Luego, ejecute los comandos de rails a continuación para generar y migrar la base de datos para nuestro proyecto Rails y asegúrese de que no haya errores.
rails db:setup
rails db:migrate
Una vez completada la instalación, inicie el servidor web predeterminado de puma rails con el siguiente comando.
La aplicación se ejecutará en su dirección IP pública con el puerto 8080
:
=> Booting Puma
=> Rails 6.0.3.1 application starting in development
=> Run `rails server --help` for more startup options
Puma starting in single mode...
* Version 4.3.5 (ruby 2.7.1-p83), codename: Mysterious Traveller
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://0.0.0.0:8081
Ahora abra su navegador web y escriba la dirección IP de su servidor con el puerto 8080
en la barra de direcciones: http://TUO_INDIRIZZO_IP:8080/
Obtendrá la página index.html predeterminada de Ruby on Rails.
Cree un CRUD simple con Rails Scaffold
En este paso, crearemos una nueva aplicación CRUD simple usando la base de datos Ruby on Rails y PostgreSQL.
Genere una aplicación CRUD simple usando el comando ruby scaffold como se muestra a continuación:
rails g scaffold Post title:string body:text
Debería ver un resultado similar al siguiente:
Running via Spring preloader in process 1578
invoke active_record
create db/migrate/20200527145454_create_posts.rb
create app/models/post.rb
invoke test_unit
create test/models/post_test.rb
create test/fixtures/posts.yml
invoke resource_route
route resources:posts
invoke scaffold_controller
create app/controllers/posts_controller.rb
invoke erb
create app/views/posts
create app/views/posts/index.html.erb
create app/views/posts/edit.html.erb
create app/views/posts/show.html.erb
create app/views/posts/new.html.erb
create app/views/posts/_form.html.erb
invoke test_unit
create test/controllers/posts_controller_test.rb
create test/system/posts_test.rb
invoke helper
create app/helpers/posts_helper.rb
invoke test_unit
invoke jbuilder
create app/views/posts/index.json.jbuilder
create app/views/posts/show.json.jbuilder
create app/views/posts/_post.json.jbuilder
invoke assets
invoke scss
create app/assets/stylesheets/posts.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
A continuación, migre la base de datos con el siguiente comando.
rake db:migrate
== 20200527145454 CreatePosts: migrating ======================================
-- create_table(:posts)
-> 0.0117s
== 20200527145454 CreatePosts: migrated (0.0120s) =============================
Asegúrese de que no haya errores y vuelva a ejecutar el servidor Puma.
rails s -b 0.0.0.0 -p 8080
Regrese a su navegador web y escriba la dirección IP del servidor con el puerto 8080
agregando la ruta '/posts': http://TUO_INDIRIZZO_IP:8080/posts
Ahora puede crear, editar y eliminar publicaciones con la sencilla aplicación CRUD y la base de datos PostgreSQL utilizando Rails Scaffold.
Conclusión
En este tutorial hemos visto cómo crear una aplicación usando Ruby on Rails y PostgreSQL en Ubuntu 20.04 LTS Focal Fossa.