Ruby on Rails Tutorial
Empezando con Ruby on Rails
Buscar..
Observaciones
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 |
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 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
.
$ 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. 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
:
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 iniciar el servidor:
$ rails server
# OR
$ rails s
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 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 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 anterioresrails db:rollback
Si eso sigue generando un error, entonces debería verificar su config/database.yml
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.
$ rails new MyApp -T -d postgresql
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:
rails generate rspec:install
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 generate 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:
class PostsController < ApplicationController
# empty
end
Es posible crear métodos predeterminados para el controlador pasando los argumentos de nombre del 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 parent_module/controller_name
. 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 que definirá métodos que se convertirán en las acciones para este controlador.
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:
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 los archivos generados por el andamio para el recurso llamado Task
rails destroy scaffold Task
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:
- simplemente crea tu aplicación sin registro activo
$ rails app new MyApp --skip-active-record
- agrega tu propio sistema de gestión de base de datos en
Gemfile
gem 'mongoid', '~> 5.0'
-
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
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
rails new name-of-app --api
Agregar active_model_serializers en Gemfile
gem 'active_model_serializers'
instalar paquete en la terminal
bundle install
Configure el adaptador ActiveModelSerializer
para que use :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 )
Genera un nuevo andamio para tu recurso
rails generate scaffold Task name:string description:text
Esto generará los siguientes archivos:
Controlador: app / controllers / 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
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 update
sudo apt-get upgrade
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.
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Instalando 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 ruby
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: 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. Escribaruby 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".