Ruby on Rails Tutoriel
Démarrer avec Ruby on Rails
Recherche…
Remarques
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é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
:
rake db:create
# OR
rails db:create
rake db:create
Maintenant que nous avons créé la base de données, nous devons exécuter des migrations pour configurer les tables:
rake db:migrate
# OR
rails db:migrate
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é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
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.
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
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:
- créez simplement votre application sans enregistrement actif
$ rails app new MyApp --skip-active-record
- ajoutez votre propre système de gestion de base de données dans
Gemfile
gem 'mongoid', '~> 5.0'
-
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é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
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 danscd 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. Tapezruby 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
installationnode-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».