Buscar..


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

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 :

5.0
rake db:create
# OR
rails db:create
5.0
rake db:create

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

5.0
rake db:migrate
# OR
rails db:migrate
5.0
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 anteriores rails 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:

  1. simplemente crea tu aplicación sin registro activo
$ rails app new MyApp --skip-active-record
  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

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. 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".



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow