Primeros pasos con Ruby on Rails
- Crear una aplicación de Ruby on Rails
- Cree una nueva aplicación de Rails con la base de datos que elija e incluya la herramienta de prueba RSpec
- Generación de un controlador
- Instalación de rieles
- Cree una nueva aplicación Rails con un adaptador de base de datos no estándar
- Creación de API de Rails en JSON
- Generar un recurso con Scaffolds
En esta página
- Crear una aplicación de Ruby on Rails
- Cree una nueva aplicación de Rails con la base de datos que elija e incluya la herramienta de prueba RSpec
- Generación de un controlador
- Instalación de rieles
- Cree una nueva aplicación Rails con un adaptador de base de datos no estándar
- Creación de API de Rails en JSON
- Generar un recurso con Scaffolds
Crear una aplicación de Ruby on Rails
Este ejemplo asume que Ruby y Ruby on Rails ya se han instalado correctamente. Si no, puedes encontrar cómo hacerlo aquí.
Abra una línea de comando o terminal. Para generar una nueva aplicación de rieles, use el comando rails new seguido del nombre de su aplicación:
$ rails new my_app
Si desea crear su aplicación Rails con una versión específica de Rails, puede especificarla en el momento de generar la aplicación. Para hacerlo, usa rails _version_ new
seguido del nombre de la aplicación:
$ rails _4.2.0_ new my_app
Esto creará una aplicación Rails llamada MyApp
en un directorio my_app
e instalará las dependencias de la gema que ya se mencionan en Gemfile
usando bundle install
.
Para cambiar al directorio de su aplicación recién creada, use el comando cd
, que significa cambiar directorio
.
$ cd my_app
El directorio my_app
tiene una serie de archivos y carpetas generados automáticamente que conforman la estructura de una aplicación Rails. La siguiente es una lista de archivos y carpetas que se crean de forma predeterminada:
Archivo/Carpeta | Propósito |
---|---|
aplicación/ | Contiene los controladores, modelos, vistas, ayudantes, anuncios publicitarios y activos para su aplicación. |
papelera/ | Contiene el script Rails que inicia su aplicación y puede contener otros scripts que use para configurar, actualizar, implementar o ejecutar su aplicación. |
configuración/ | Configure las rutas, la base de datos y más de su aplicación. |
config.ru | Configuración de rack para servidores basados en Rack utilizados para iniciar la aplicación. |
base de datos/ | Contiene su esquema de base de datos actual, así como las migraciones de base de datos. |
Gemfile Gemfile.lock | Estos archivos le permiten especificar qué dependencias de gemas se necesitan para su aplicación Rails. Estos archivos son utilizados por la gema Bundler. |
libre/ | Módulos extendidos para su aplicación. |
registro/ | Archivos de registro de la aplicación. |
publico/ | La única carpeta vista por el mundo tal cual. Contiene archivos estáticos y recursos compilados. |
Archivo de rastrillo | Este archivo localiza y carga tareas que se pueden ejecutar desde la línea de comandos. Las definiciones de tareas se definen a través de los componentes de Rails. |
LÉAME.md | Este es un breve manual de instrucciones para su aplicación. Debe editar este archivo para decirles a otros qué hace su aplicación, cómo configurarla, etc. |
prueba/ | Pruebas unitarias, accesorios y otros aparatos de prueba. |
temperatura/ | Archivos temporales (como archivos caché y pid). |
vendedor/ | Un lugar para todo el código de terceros. En una aplicación Rails típica, esto incluye gemas vendidas. |
Ahora necesita crear una base de datos desde su archivo database.yml
:
rake db:create
# OR
rails db:create
rake db:create
Ahora que hemos creado la base de datos, necesitamos ejecutar migraciones para configurar las tablas:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
Para iniciar la aplicación, necesitamos encender el servidor:
$ rails server
# OR
$ rails s
De forma predeterminada, Rails iniciará la aplicación en el puerto 3000. Para iniciar la aplicación con un número de puerto diferente, debemos iniciar el servidor como,
$ rails s -p 3010
Si navega a http://localhost:3000 en su navegador, verá una página de bienvenida de Rails, que muestra que su aplicación ahora se está ejecutando.
Si arroja un error, puede haber varios problemas posibles:
- Hay un problema con
config/database.yml
- Tiene dependencias en su
Gemfile
que no han sido instaladas. - Tienes migraciones pendientes. Ejecute
rails db:migrar
- En caso de que pase a la migración anterior
rails db:rollback
Si eso todavía arroja un error, entonces debería verificar su config/database.yml
1: https://www.wikiod.com/es/ruby-on-rails/primeros-pasos-con-ruby-on-rails#Instalación de rieles 2: http://guides.rubyonrails.org/command_line.html#rails-new
Cree una nueva aplicación de Rails con la base de datos que elija e incluya la herramienta de prueba RSpec
Rails usa sqlite3
como la base de datos predeterminada, pero puede generar una nueva aplicación de Rails con la base de datos de su elección. Simplemente agregue la opción -d
seguida del nombre de la base de datos.
$ rails new MyApp -T -d postgresql
Esta es una lista (no exhaustiva) de opciones de bases de datos disponibles:
- mysql
- oráculo
- postgresql
- sqlite3
- base frontal -ibm_db
- servidor SQL
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- jdbc
El comando -T indica que se salte la instalación de minitest. Para instalar un conjunto de pruebas alternativo como RSpec, edite el Gemfile y agregue
group :development, :test do
gem 'rspec-rails',
end
Luego ejecuta el siguiente comando desde la consola:
rails generate rspec:install
Generación de un controlador
Para generar un controlador (por ejemplo, Publicaciones
), navegue hasta el directorio de su proyecto desde una línea de comando o terminal, y ejecute:
$ rails generate controller Posts
Puede acortar este código reemplazando generar
con g
, por ejemplo:
$ rails g controller Posts
Si abre la aplicación/controladores/posts_controller.rb recién generada, verá un controlador sin acciones:
class PostsController < ApplicationController
# empty
end
Es posible crear métodos predeterminados para el controlador pasando argumentos de nombre de controlador.
$ rails g controller ControllerName method1 method2
Para crear un controlador dentro de un módulo, especifique el nombre del controlador como una ruta como módulo_principal/nombre_controlador
. Por ejemplo:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
Esto generará los siguientes archivos:
Controller: app/controllers/credit_cards_controller.rb
Test: test/controllers/credit_cards_controller_test.rb
Views: app/views/credit_cards/debit.html.erb [...etc]
Helper: app/helpers/credit_cards_helper.rb
Un controlador es simplemente una clase que se define para heredar de ApplicationController
.
Es dentro de esta clase donde definirá los métodos que se convertirán en las acciones de este controlador.
Instalación de rieles
Instalación de rieles en Ubuntu
En un ubuntu limpio, la instalación de Rails debería ser sencilla
Actualización de paquetes de ubuntu
sudo apt-get update
sudo apt-get upgrade
Instalar las dependencias de Ruby y Rails
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
Instalando el administrador de versiones de Ruby. En este caso el fácil es usar rbenv
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Instalación de Ruby Build
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Reiniciar shell
exec $SHELL
instalar rubí
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
Instalación de rieles
gem install rails
Instalación de rieles en Windows
Paso 1: Instalación de Ruby
Necesitamos el lenguaje de programación Ruby instalado. Podemos usar una versión precompilada de Ruby llamada RubyInstaller.
- Descargue y ejecute Ruby Installer desde rubyinstaller.org.
- Ejecutar el instalador. Marque “Agregar ejecutables de Ruby a su RUTA”, luego instálelo.
- Para acceder a Ruby, vaya al menú de Windows, haga clic en Todos los programas, desplácese hacia abajo hasta Ruby y haga clic en “Iniciar símbolo del sistema con Ruby”. Se abrirá una terminal del símbolo del sistema. Si escribe
ruby -v
y presiona Enter, debería ver el número de versión de Ruby que instaló.
Paso 2: Kit de desarrollo Ruby
Después de instalar Ruby, podemos intentar instalar Rails. Pero algunas de las bibliotecas de las que depende Rails necesitan algunas herramientas de construcción para ser compiladas, y Windows carece de esas herramientas por defecto. Puede identificar esto si ve un error al intentar instalar Rails Gem::InstallError: La gema nativa '[nombre de la gema]' requiere herramientas de compilación instaladas.
Para solucionar esto, necesitamos instalar el kit de desarrollo de Ruby.
- Descarga el DevKit
- Ejecutar el instalador.
- Necesitamos especificar una carpeta donde vamos a instalar permanentemente el DevKit. Recomiendo instalarlo en la raíz de su disco duro, en
C:\RubyDevKit
. (No use espacios en el nombre del directorio).
Ahora necesitamos hacer que las herramientas DevKit estén disponibles para Ruby.
- En el símbolo del sistema, cambie al directorio DevKit.
cd C:\RubyDevKit
o cualquier directorio en el que lo haya instalado. - Necesitamos ejecutar un script de Ruby para inicializar la configuración de DevKit. Escribe
rubí dk.rb init
. Ahora le diremos a ese mismo script que agregue el DevKit a nuestra instalación de Ruby. Escribaruby dk.rb install
.
El DevKit ahora debería estar disponible para que lo usen sus herramientas de Ruby al instalar nuevas bibliotecas.
Paso 3: Raíles
Ahora podemos instalar Rails. Rails viene como una gema Ruby. En su símbolo del sistema, escriba:
rieles de instalación de gemas
Una vez que presione Enter, el programa gem
descargará e instalará esa versión de Rails gem, junto con todas las otras gemas de las que Rails depende.
Paso 4: Node.js
Algunas bibliotecas de las que depende Rails requieren la instalación de un tiempo de ejecución de JavaScript. Instalemos Node.js para que esas bibliotecas funcionen correctamente.
- Descargue el instalador de Node.js desde aquí.
- Cuando se complete la descarga, visite su carpeta de descargas y ejecute el instalador
node-v4.4.7.pkg
. - Lea el acuerdo de licencia completo, acepte los términos y haga clic en Siguiente en el resto del asistente, dejando todo en la forma predeterminada.
- Es posible que aparezca una ventana que le pregunte si desea permitir que la aplicación realice cambios en su computadora. Haga clic en “Sí”.
- Cuando se complete la instalación, deberá reiniciar su computadora para que Rails pueda acceder a Node.js.
Una vez que su computadora se reinicie, no olvide ir al menú de Windows, haga clic en “Todos los programas”, desplácese hacia abajo hasta Ruby y haga clic en “Iniciar símbolo del sistema con Ruby”.
Cree una nueva aplicación Rails con un adaptador de base de datos no estándar
Rails se envía por defecto con ActiveRecord
, un ORM (Mapeo relacional de objetos) derivado del patrón con el mismo nombre.
Como ORM, está diseñado para manejar el mapeo relacional y, más precisamente, para manejar las solicitudes SQL por usted, de ahí la limitación a las bases de datos SQL únicamente.
Sin embargo, aún puede crear una aplicación de Rails con otro sistema de administración de base de datos:
- simplemente cree su aplicación sin registro activo
$ rails app new MyApp --skip-active-record
- agregue su propio sistema de administración de base de datos en
Gemfile
gem 'mongoid', '~> 5.0'
Instalación del paquete
y siga los pasos de instalación desde la base de datos deseada.
En este ejemplo, ‘mongoid’ es un mapeo de objetos para ‘MongoDB’ y, como muchas otras gemas de base de datos creadas para rieles, también hereda de ‘ActiveModel’ de la misma manera que ‘ActiveRecord’, que proporciona una interfaz común para muchas características como como validaciones, callbacks, traducciones, etc.
Otros adaptadores de bases de datos incluyen, pero no se limitan a:
- carpetas de datos
- rieles de secuela
Creación de API de Rails en JSON
Este ejemplo asume que tiene experiencia en la creación de aplicaciones Rails.
Para crear una aplicación solo API en Rails 5, ejecute
rails new name-of-app --api
Agregue active_model_serializers en Gemfile
gem 'active_model_serializers'
instalar paquete en terminal
bundle install
Configure el adaptador ActiveModelSerializer
para usar :json_api
# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )
Genere un nuevo andamio para su recurso
rails generate scaffold Task name:string description:text
Esto generará los siguientes archivos:
Controlador: aplicación/controladores/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Migration: db/migrate/_create_tasks.rb
Model: app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb
Generar un recurso con Scaffolds
De guides.rubyonrails.org:
En lugar de generar un modelo directamente. . . vamos a montar un andamio. Un andamio en Rails es un conjunto completo de modelo, migración de base de datos para ese modelo, controlador para manipularlo, vistas para ver y manipular los datos y un conjunto de pruebas para cada uno de los anteriores.
Aquí hay un ejemplo de andamiaje de un recurso llamado Tarea
con un nombre de cadena y una descripción de texto:
rails generate scaffold Task name:string description:text
Esto generará los siguientes archivos:
Controller: app/controllers/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Views: app/views/tasks
app/views/tasks/index.html.erb
app/views/tasks/edit.html.erb
app/views/tasks/show.html.erb
app/views/tasks/new.html.erb
app/views/tasks/_form.html.erb
Helper: app/helpers/tasks_helper.rb
JS: app/assets/javascripts/tasks.coffee
CSS: app/assets/stylesheets/tasks.scss
app/assets/stylesheets/scaffolds.scss
ejemplo para eliminar archivos generados por scaffold para el recurso llamado Tarea
rails destroy scaffold Task