Empezando con Ruby on Rails

Download ruby-on-rails eBook

Observaciones

logo

Ruby on Rails (RoR), o Rails, es un marco de aplicación web popular de código abierto. Rails utiliza Ruby, HTML, CSS y JavaScript para crear una aplicación web que se ejecuta en un servidor web. Rails utiliza el patrón model-view-controller (MVC) y proporciona una pila completa de bibliotecas desde la base de datos hasta la vista.

Versiones

Versión Fecha de lanzamiento
5.1.2 2017-06-26
5.0 2016-06-30
4.2 2014-12-19
4.1 2014-04-08
4.0 2013-06-25
3.2 2012-01-20
3.1 2011-08-31
3.0 2010-08-29
2.3 2009-03-16
2.0 2007-12-07
1.2 2007-01-19
1.1 2006-03-28
1.0 2005-12-13

Cree una nueva aplicación Rails con un adaptador de base de datos no estándar

Rails se envía de forma predeterminada 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 manejando las solicitudes de SQL para usted, de ahí la limitación a las bases de datos de SQL solamente.

Sin embargo, aún puede crear una aplicación Rails con otro sistema de administración de base de datos:

  1. simplemente crea tu aplicación sin registro activo
gem 'mongoid', '~> 5.0'
 
  1. agrega tu propio sistema de gestión de base de datos en Gemfile
gem 'mongoid', '~> 5.0'
 
  1. bundle install y siga los pasos de instalación de 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 se hereda de ActiveModel la misma forma que ActiveRecord , que proporciona una interfaz común para muchas funciones como validaciones, devoluciones de llamadas, traducciones, etc. .

Otros adaptadores de base de datos incluyen, pero no se limitan a:

  • intercambio de datos

  • secuelas-carriles

Cree una nueva aplicación Rails con su base de datos de su elección e incluyendo la herramienta de prueba RSpec

Rails usa sqlite3 como la base de datos predeterminada, pero puede generar una nueva aplicación de rails con una base de datos de su elección. Solo agregue la opción -d seguida del nombre de la base de datos.

group :development, :test do
  gem 'rspec-rails', 
end
 

Esta es una lista (no exhaustiva) de opciones de base de datos disponibles:

  • mysql
  • oráculo
  • postgresql
  • sqlite3
  • base frontal
  • ibm_db
  • servidor SQL
  • jdbcmysql
  • jdbcsqlite3
  • jdbcpostgresql
  • jdbc

El comando -T indica omitir 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:

group :development, :test do
  gem 'rspec-rails', 
end
 

Creando una aplicación Ruby on Rails

Este ejemplo asume que Ruby y Ruby on Rails ya se han instalado correctamente. Si no, puedes encontrar como hacerlo aquí .

Abre una línea de comando o terminal. Para generar una nueva aplicación de rieles, use el nuevo comando de rieles seguido del nombre de su aplicación:

$ rails _4.2.0_ new my_app 
 

Si desea crear su aplicación Rails con una versión específica de Rails, puede especificarla al momento de generar la aplicación. Para hacerlo, use rails _version_ new seguido del nombre de la aplicación:

$ rails _4.2.0_ new my_app 
 

Esto creará una aplicación de Rails llamada MyApp en un directorio my_app e instalará las dependencias de gemas que ya se mencionan en Gemfile usando la bundle install .

Para cambiar al directorio de la aplicación que acaba de crear, use el comando cd , que significa change directory .

$ rails _4.2.0_ new 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. A continuación se muestra una lista de archivos y carpetas que se crean de forma predeterminada:

Archivo / Carpeta Propósito
app / Contiene los controladores, modelos, vistas, ayudantes, correos y activos para su aplicación.
compartimiento/ Contiene el script de Rails que inicia su aplicación y puede contener otros scripts que usa para configurar, actualizar, implementar o ejecutar su aplicación.
config / Configure las rutas de su aplicación, la base de datos y más.
config.ru Configuración de rack para servidores basados ​​en Rack utilizados para iniciar la aplicación.
db / 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 son necesarias para su aplicación Rails. Estos archivos son utilizados por la gema Bundler.
lib / Módulos extendidos para su aplicación.
Iniciar sesión/ Archivos de registro de la aplicación.
público/ La única carpeta vista por el mundo tal como es. Contiene archivos estáticos y activos compilados.
Rakefile Este archivo localiza y carga tareas que pueden ejecutarse desde la línea de comandos. Las definiciones de tareas se definen a través de los componentes de Rails.
README.md Este es un breve manual de instrucciones para su aplicación. Debería editar este archivo para decir a otros qué hace su aplicación, cómo configurarlo, etc.
prueba/ Pruebas unitarias, accesorios, y otros aparatos de prueba.
temperatura/ Archivos temporales (como caché y archivos pid).
vendedor/ Un lugar para todos los códigos de terceros. En una aplicación típica de Rails esto incluye gemas vendidas.

Ahora necesita crear una base de datos desde su archivo database.yml :

5.0
$ rails _4.2.0_ new my_app 
 
5.0
$ rails _4.2.0_ new my_app 
 

Ahora que hemos creado la base de datos, necesitamos ejecutar migraciones para configurar las tablas:

5.0
$ rails _4.2.0_ new my_app 
 
5.0
$ rails _4.2.0_ new my_app 
 

Para iniciar la aplicación, necesitamos iniciar el servidor:

$ rails _4.2.0_ new my_app 
 

De forma predeterminada, los rieles iniciarán 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 _4.2.0_ new my_app 
 

Si navega a http: // localhost: 3000 en su navegador, verá una página de bienvenida de Rails, que muestra que su aplicación se está ejecutando.

Si se produce un error, puede haber varios problemas posibles:

  • Hay un problema con la config/database.yml
  • Tiene dependencias en su Gemfile que no se han instalado.
  • Tienes migraciones pendientes. Ejecutar rails db:migrate
  • En caso de que se mueva a los rails db:rollback migración anteriores rails db:rollback

Si eso sigue generando un error, entonces debería verificar su config/database.yml

Creando APIs de Rails en JSON

Este ejemplo asume que tiene experiencia en la creación de aplicaciones Rails.

Para crear una aplicación solo para API en Rails 5, ejecute

gem 'active_model_serializers'
 

Agregar active_model_serializers en Gemfile

gem 'active_model_serializers'
 

instalar paquete en la terminal

gem 'active_model_serializers'
 

Configure el adaptador ActiveModelSerializer para que use :json_api

gem 'active_model_serializers'
 

Genera un nuevo andamio para tu recurso

gem 'active_model_serializers'
 

Esto generará los siguientes archivos:

Controlador: app / controllers / tasks_controller.rb

gem 'active_model_serializers'
 

Generar un recurso con andamios

De guias.rubyonrails.org:

En lugar de generar un modelo directamente. . . vamos a configurar un andamio Un andamio en Rails es un conjunto completo de modelos, 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 Task con un nombre de cadena y una descripción de texto:

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
 

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 los archivos generados por el andamio para el recurso llamado Task

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
 

Generando un controlador

Para generar un controlador (por ejemplo, Posts ), navegue hasta el directorio de su proyecto desde una línea de comandos o terminal, y ejecute:

$ rails g controller Posts
 

Puede acortar este código reemplazando generate con g , por ejemplo:

$ rails g controller Posts
 

Si abre la aplicación / controllers / posts_controller.rb recién generada, verá un controlador sin acciones:

$ rails g controller Posts
 

Es posible crear métodos predeterminados para el controlador pasando los argumentos de nombre del controlador.

$ rails g controller Posts
 

Para crear un controlador dentro de un módulo, especifique el nombre del controlador como una ruta como parent_module/controller_name . Por ejemplo:

$ rails g controller Posts
 

Esto generará los siguientes archivos:

$ rails g controller Posts
 

Un controlador es simplemente una clase que se define para heredar de ApplicationController .

Es dentro de esta clase que definirá métodos que se convertirán en las acciones para este controlador.

Instalación de rieles

Instalando Rails en Ubuntu

En una ubuntu limpia, la instalación de Rails debería ser sencilla

Actualizando paquetes de Ubuntu

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
 

Instalar 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
 

Instalación del gestor de versiones ruby. En este caso lo fácil es usar rbenv.

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 Ruby Build

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
 

Reiniciar shell

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
 

Instalar ruby

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
 

Instalación de rieles

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
 

Instalación de rieles en Windows

Paso 1: Instalando Ruby

Necesitamos el lenguaje de programación Ruby instalado. Podemos usar una versión precompilada de Ruby llamada RubyInstaller.

  • Descarga y ejecuta Ruby Installer desde rubyinstaller.org .
  • Ejecuta 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 solicitud de comando con Ruby". Se abrirá un terminal de línea de comandos. Si escribe ruby -v y presiona Entrar, debería ver el número de versión de Ruby que instaló.

Paso 2: Kit de desarrollo de rubí

Después de instalar Ruby, podemos intentar instalar Rails. Pero algunas de las bibliotecas de Rails dependen de la necesidad de algunas herramientas de compilación para compilarse, y Windows carece de esas herramientas de forma predeterminada. Puede identificar esto si ve un error al intentar instalar Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools. Para solucionar esto, necesitamos instalar el kit de desarrollo de Ruby.

  • Descarga el DevKit
  • Ejecuta 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 que las herramientas DevKit estén disponibles para Ruby.

  • En su símbolo del sistema, cambie al directorio DevKit. cd C:\RubyDevKit o cualquier directorio en el que lo haya instalado.
  • Necesitamos ejecutar un script Ruby para inicializar la configuración de DevKit. Escribe ruby dk.rb init . Ahora le diremos a ese mismo script que agregue el DevKit a nuestra instalación de Ruby. Escriba ruby dk.rb install .

El DevKit ahora debería estar disponible para que las herramientas de Ruby lo usen al instalar bibliotecas nuevas.

Paso 3: Rieles

Ahora podemos instalar rieles. Los rieles vienen como una gema de rubí. En su símbolo del sistema, escriba:

gem install rails

Una vez que presione Entrar, el programa gem descargará e instalará esa versión de la gema Rails, junto con todas las otras gemas de las que Rails depende.

Paso 4: Node.js

Algunas bibliotecas de las que depende Rails requieren que se instale un tiempo de ejecución de JavaScript. Instalemos Node.js para que esas bibliotecas funcionen correctamente.

  • Descargue el instalador Node.js desde aquí .
  • Cuando se complete la descarga, visite la 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 el valor predeterminado.
  • Aparecerá una ventana preguntándole si desea permitir que la aplicación realice cambios en su computadora. Haga clic en "Sí".
  • Cuando finalice la instalación, deberá reiniciar su computadora para que Rails pueda acceder a Node.js.

Una vez que se reinicie la computadora, no olvide ir al menú de Windows, haga clic en "Todos los programas", desplácese hacia abajo hasta Ruby y haga clic en "Iniciar línea de comando con Ruby".

Stats

1637 Contributors: 38
Monday, July 31, 2017
Licenciado bajo: CC-BY-SA

No afiliado a Stack Overflow
Rip Tutorial: info@zzzprojects.com

Descargar eBook