Démarrer avec Ruby on Rails

Téléchargez ruby-on-rails eBook

Remarques

logo

Ruby on Rails (RoR), ou Rails, est un framework d'applications Web populaire open-source. Rails utilise Ruby, HTML, CSS et JavaScript pour créer une application Web exécutée sur un serveur Web. Rails utilise le modèle MVC (model-view-controller) et fournit un ensemble complet de bibliothèques de la base de données à la vue.

Versions

Version Date de sortie
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

Créer une nouvelle application Rails avec un adaptateur de base de données non standard

Rails est livré par défaut avec ActiveRecord , un ORM (Object Relational Mapping) dérivé du motif du même nom .

En tant qu'ORM, il est conçu pour gérer le mappage relationnel, et plus précisément en gérant les requêtes SQL pour vous, d'où la limitation aux bases de données SQL uniquement.

Cependant, vous pouvez toujours créer une application Rails avec un autre système de gestion de base de données:

  1. créez simplement votre application sans enregistrement actif
$ rails app new MyApp --skip-active-record
 
  1. ajoutez votre propre système de gestion de base de données dans Gemfile
gem 'mongoid', '~> 5.0'
 
  1. bundle install et suivre les étapes d'installation de la base de données souhaitée.

Dans cet exemple, mongoid est un mappage d'objet pour MongoDB et, comme beaucoup d'autres gems de base de données construits pour les rails, il hérite également d' ActiveModel la même manière ActiveRecord , qui fournit une interface commune à de nombreuses fonctionnalités telles que validations, rappels, traductions, etc. .

Les autres adaptateurs de base de données incluent, mais ne sont pas limités à:

  • datamapper

  • sequel-rails

Créez une nouvelle application Rails avec votre choix de base de données et l’outil de test RSpec inclus.

Rails utilise sqlite3 comme base de données par défaut, mais vous pouvez générer une nouvelle application rails avec une base de données de votre choix. Ajoutez simplement l'option -d suivie du nom de la base de données.

$ rails new MyApp -T -d postgresql
 

Ceci est une liste (non exhaustive) des options de base de données disponibles:

  • mysql
  • oracle
  • postgresql
  • sqlite3
  • base avant
  • ibm_db
  • serveur SQL
  • jdbcmysql
  • jdbcsqlite3
  • jdbcpostgresql
  • jdbc

La commande -T indique de sauter l'installation de minitest. Pour installer une suite de tests alternative comme RSpec , éditez le fichier Gemfile et ajoutez

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

Puis lancez la commande suivante depuis la console:

rails generate rspec:install
 

Création d'une application Ruby on Rails

Cet exemple suppose que Ruby et Ruby on Rails ont déjà été installés correctement. Sinon, vous pouvez trouver comment le faire ici .

Ouvrez une ligne de commande ou un terminal. Pour générer une nouvelle application rails, utilisez la nouvelle commande rails suivie du nom de votre application:

$ rails new my_app
 

Si vous souhaitez créer votre application Rails avec une version Rails spécifique, vous pouvez le spécifier au moment de la génération de l'application. Pour ce faire, utilisez rails _version_ new suivi du nom de l'application:

$ rails _4.2.0_ new my_app 
 

Cela créera une application Rails appelée MyApp dans un répertoire my_app et installera les dépendances gem déjà mentionnées dans Gemfile utilisant une bundle install .

Pour basculer vers le répertoire de votre application nouvellement créée, utilisez la commande cd , qui signifie « change directory .

$ cd my_app
 

Le répertoire my_app contient un certain nombre de fichiers et de dossiers générés automatiquement qui constituent la structure d'une application Rails. Voici une liste des fichiers et dossiers créés par défaut:

Dossier de fichiers Objectif
app / Contient les contrôleurs, les modèles, les vues, les assistants, les mailers et les ressources de votre application.
poubelle/ Contient le script de rails qui démarre votre application et peut contenir d'autres scripts que vous utilisez pour configurer, mettre à jour, déployer ou exécuter votre application.
config / Configurez les routes, la base de données et plus encore de votre application.
config.ru Configuration en rack pour les serveurs basés sur Rack utilisés pour démarrer l'application.
db / Contient votre schéma de base de données actuel, ainsi que les migrations de base de données.
Gemfile Gemfile.lock Ces fichiers vous permettent de spécifier les dépendances de gem requises pour votre application Rails. Ces fichiers sont utilisés par la gemme Bundler.
lib / Modules étendus pour votre application.
bûche/ Fichiers journaux d'application.
Publique/ Le seul dossier vu par le monde tel quel. Contient des fichiers statiques et des actifs compilés.
Rakefile Ce fichier localise et charge les tâches pouvant être exécutées à partir de la ligne de commande. Les définitions de tâches sont définies dans les composants de Rails.
README.md Ceci est un bref manuel d'instructions pour votre application. Vous devez éditer ce fichier pour indiquer aux autres ce que fait votre application, comment la configurer, etc.
tester/ Tests unitaires, appareils et autres appareils de test.
temp / Fichiers temporaires (comme les fichiers de cache et de pid).
vendeur/ Un lieu pour tout code tiers. Dans une application Rails classique, cela inclut les gemmes vendues.

Maintenant, vous devez créer une base de données à partir de votre fichier database.yml :

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

Maintenant que nous avons créé la base de données, nous devons exécuter des migrations pour configurer les tables:

5.0
rake db:migrate
# OR
rails db:migrate
 
5.0
rake db:migrate
 

Pour démarrer l'application, nous devons lancer le serveur:

$ rails server
# OR
$ rails s
 

Par défaut, les rails démarreront l’application sur le port 3000. Pour lancer l’application avec un numéro de port différent, nous devons lancer le serveur comme suit:

$ rails s -p 3010
 

Si vous accédez à http: // localhost: 3000 dans votre navigateur, vous verrez une page d'accueil Rails indiquant que votre application est en cours d'exécution.

Si une erreur se produit, plusieurs problèmes peuvent survenir:

  • Il y a un problème avec config/database.yml
  • Vous avez des dépendances dans votre Gemfile qui n'ont pas été installées.
  • Vous avez des migrations en attente. Run rails db:migrate
  • Si vous passez aux rails db:rollback migration précédents, rails db:rollback

Si cela génère toujours une erreur, alors vous devriez vérifier votre config/database.yml

Création d'API Rails dans JSON

Cet exemple suppose que vous avez de l'expérience dans la création d'applications Rails.

Pour créer une application API uniquement dans Rails 5, exécutez

rails new name-of-app --api
 

Ajouter active_model_serializers dans Gemfile

gem 'active_model_serializers'
 

installer le paquet dans le terminal

bundle install
 

Définissez l'adaptateur ActiveModelSerializer pour utiliser :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 )
 

Générer un nouvel échafaudage pour votre ressource

rails generate scaffold Task name:string description:text
 

Cela générera les fichiers suivants:

Contrôleur: 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
 

Générer une ressource avec des échafaudages

De guides.rubyonrails.org:

Au lieu de générer directement un modèle. . . mettons en place un échafaud. Un échafaudage dans Rails est un ensemble complet de modèles, la migration de la base de données pour ce modèle, le contrôleur pour le manipuler, les vues pour afficher et manipuler les données et une suite de tests pour chacun des éléments ci-dessus.

Voici un exemple d'échafaudage d'une ressource appelée Task avec un nom de chaîne et une description textuelle:

rails generate scaffold Task name:string description:text
 

Cela générera les fichiers suivants:

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
 

exemple pour supprimer les fichiers générés par échafaudage pour la ressource appelée Task

rails destroy scaffold Task
 

Générer un contrôleur

Pour générer un contrôleur (par exemple, Posts ), accédez à votre répertoire de projet à partir d'une ligne de commande ou d'un terminal, puis exécutez:

$ rails generate controller Posts
 

Vous pouvez raccourcir ce code en remplaçant generate avec g , par exemple:

$ rails g controller Posts
 

Si vous ouvrez la nouvelle application / controllers / posts_controller.rb générée, vous verrez un contrôleur sans action:

class PostsController < ApplicationController
    # empty
end
 

Il est possible de créer des méthodes par défaut pour le contrôleur en transmettant les arguments du nom du contrôleur.

$ rails g controller ControllerName method1 method2
 

Pour créer un contrôleur dans un module, spécifiez le nom du contrôleur comme chemin d'accès tel que parent_module/controller_name . Par exemple:

$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
 

Cela générera les fichiers suivants:

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 contrôleur est simplement une classe définie pour hériter d' ApplicationController .

C'est à l'intérieur de cette classe que vous définirez des méthodes qui deviendront les actions de ce contrôleur.

Installation de rails

Installation de Rails sur Ubuntu

Sur un Ubuntu propre, l'installation de Rails doit être simple

Mise à niveau des paquets ubuntu

sudo apt-get update
sudo apt-get upgrade
 

Installer les dépendances Ruby et 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
 

Installation du gestionnaire de version de Ruby. Dans ce cas, le facile utilise rbenv

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
 

Installation 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
 

Redémarrer la coque

exec $SHELL
 

Installer Ruby

rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
 

Installation de rails

gem install rails
 

Installation de Rails sous Windows

Étape 1: Installation de Ruby

Nous avons besoin du langage de programmation Ruby. Nous pouvons utiliser une version précompilée de Ruby appelée RubyInstaller.

  • Téléchargez et exécutez Ruby Installer à partir de rubyinstaller.org .
  • Exécutez le programme d'installation. Cochez "Ajouter des exécutables Ruby à votre PATH", puis installez-le.
  • Pour accéder à Ruby, accédez au menu Windows, cliquez sur Tous les programmes, faites défiler jusqu'à Ruby, puis cliquez sur «Démarrer l'invite de commandes avec Ruby». Un terminal d'invite de commande s'ouvre. Si vous tapez ruby -v et appuyez sur Entrée, vous devriez voir le numéro de version Ruby que vous avez installé.

Étape 2: Kit de développement Ruby

Après l'installation de Ruby, nous pouvons essayer d'installer Rails. Mais certaines des bibliothèques dont Rails a besoin ont besoin de quelques outils de compilation pour être compilées, et Windows ne dispose pas de ces outils par défaut. Vous pouvez identifier ceci si vous voyez une erreur en essayant d'installer Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools. Pour résoudre ce problème, nous devons installer le kit de développement Ruby.

  • Téléchargez le DevKit
  • Exécutez le programme d'installation.
  • Nous devons spécifier un dossier dans lequel nous allons installer définitivement le DevKit. Je recommande de l'installer dans la racine de votre disque dur, à C:\RubyDevKit . (N'utilisez pas d'espaces dans le nom du répertoire.)

Nous devons maintenant mettre les outils DevKit à la disposition de Ruby.

  • Dans votre invite de commande, accédez au répertoire DevKit. cd C:\RubyDevKit ou tout autre répertoire dans cd C:\RubyDevKit vous l'avez installé
  • Nous devons exécuter un script Ruby pour initialiser la configuration de DevKit. Tapez ruby dk.rb init . Nous allons maintenant demander au même script d'ajouter DevKit à notre installation Ruby. Tapez ruby dk.rb install .

DevKit devrait maintenant être disponible pour vos outils Ruby lors de l'installation de nouvelles bibliothèques.

Étape 3: Rails

Maintenant, nous pouvons installer Rails. Rails est un joyau Ruby. Dans votre invite de commande, tapez:

gem install rails

Une fois que vous appuyez sur Entrée, le programme gem va télécharger et installer cette version de la gemme Rails, avec tous les autres gemmes dont dépend Rails.

Étape 4: Node.js

Certaines bibliothèques dont dépend Rails nécessitent l'installation d'un script JavaScript. Installons Node.js pour que ces bibliothèques fonctionnent correctement.

  • Téléchargez le programme d'installation de Node.js à partir d' ici .
  • Une fois le téléchargement terminé, visitez votre dossier de téléchargements et exécutez le node-v4.4.7.pkg installation node-v4.4.7.pkg .
  • Lisez l'intégralité du contrat de licence, acceptez les termes et cliquez sur Suivant dans le reste de l'assistant, en laissant tout à la valeur par défaut.
  • Une fenêtre peut apparaître pour vous demander si vous souhaitez autoriser l'application à apporter des modifications à votre ordinateur. Cliquez sur "Oui".
  • Une fois l'installation terminée, vous devrez redémarrer votre ordinateur pour que Rails puisse accéder à Node.js.

Une fois que votre ordinateur redémarre, n'oubliez pas d'aller dans le menu Windows, cliquez sur «Tous les programmes», faites défiler jusqu'à Ruby et cliquez sur «Démarrer l'invite de commandes avec Ruby».

Stats

1637 Contributors: 38
Monday, July 31, 2017
Sous licence: CC-BY-SA

Non affilié à Stack Overflow
Rip Tutorial: info@zzzprojects.com

Télécharger le eBook