URL: https://linuxfr.org/news/sortie-de-ruby-on-rails-4-0 Title: Sortie de Ruby on Rails 4.0 Authors: Vincent Thomas J., Nÿco, palm123, Benoît Sibaud, claudex, Xavier Teyssier, Nicolas Casanova et Florent Zara Date: 2013年07月02日T11:38:50+02:00 License: CC By-SA Tags: ruby, rails et ruby_on_rails Score: 26 Ruby on Rails est sorti le 25 juin 2013 en version 4.0. Tous les détails dans la seconde partie de cette dépêche ! ---- [Annonce](http://weblog.rubyonrails.org/2013/6/25/Rails-4-0-final/) [Page d'accueil de projet](http://rubyonrails.org/) [Guide de maj 3.2 vers 4.0](http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-3-2-to-rails-4-0) [Ruby 2.0 est sorti](https://linuxfr.org/news/ruby-2-0-est-sorti) ---- # Ruby On Rails ? # [[Ruby on Rails]], ou RoR de son petit nom, est un [[framework]] web [MVC](http://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur) écrit en [[Ruby]]. Créé en 2004 par [[David Heinemeier Hansson]], la version 1.0 sort fin 2005 et [enflamme le monde du développement web](http://www.google.fr/trends/explore?q=rails#q=ruby%20rails&cmpt=q). Pour les étourdis, voici un historique récent du projet : * 29 août 2010 : Rails 3.0.0 * 31 août 2011 : Rails 3.1.0 * 20 janvier 2012 : Rails 3.2.0 * 25 février 2013 : Rails 4.0 beta 1 * 1^er mai 2013 : Rails 4.0 RC 1 * 11 juin 2013 : Rails 4.0 RC 2 * 25 juin 2013 : Rails 4.0 ## Une communauté toujours plus active ## Pour cette version 4.0, il y a eu plus de [10000 commits](https://github.com/rails/rails/compare/3-2-stable...4-0-stable) ! Le projet a également compté jusqu’à plus de 500 contributeurs différents pour l'année 2013. # Les nouveautés de Rails 4.0 # Une grande attention a été portée à rendre RoR le plus simple possible pour construire des applications web modernes et rapides. La majeure partie de ce travail a été réalisé dans le cadre de l'application [basecamp (en)](http://37signals.com/svn/posts/3112-how-basecamp-next-got-to-be-so-damn-fast-without-using-much-client-side-ui "3112-how-basecamp-next-got-to-be-so-damn-fast-without-using-much-client-side-ui") sur ces trois aspects : 1. Rendre l'utilisation du « Russian Doll-caching » plus facile à travers un mécanisme d'expiration par clef [voir cet article de 37signals (en)](http://37signals.com/svn/posts/3113-how-key-based-cache-expiration-works "3113-how-key-based-cache-expiration-works"). 1. Rendre la partie cliente plus rapide avec la gem [turbolinks (en)](https://github.com/rails/turbolinks/) qui permet de ne pas recompiler le JS et les CSS entre les pages sans trop alourdir le développement de l'application. 1. Avoir une meilleure gestion des etags dans les contrôleurs. Le code est maintenant entièrement « thread safe », permettant de meilleures performances sur les serveurs multi-threads. Ajout de la possibilité d'envoyer des flux de données à intervalle choisi, [voir cet article (en)](http://tenderlovemaking.com/2012/07/30/is-it-live.html "Live streaming") pour plus d'explications. Beaucoup d'améliorations sur le module Active Record, notamment sur la cohérence de la structure des requêtes et des « scope ». Il y a également eu des améliorations sur la sécurité, dont entre autres l'ajout d'un contrôle de l’affectation de masse dans les contrôleurs en permettant de lister les paramètres à accepter ou à refuser. Certains se souviendront peut être que GitHub a fait les frais d'une attaque de ce type en [mars 2012](https://github.com/blog/1068-public-key-security-vulnerability-and-mitigation). ## Ruby ## Ruby 2.0 est maintenant recommandé. La version 1.8 n'est plus supportée et la branche 1.9 ne le sera plus à partir de rails 5. Il est donc conseillé de migrer dès que possible vers la version 2.0 ! ## Nettoyage de code obsolète ## Certaines fonctionnalités ont été déplacées dans des gems indépendantes : * [Active Resource](https://github.com/rails/activeresource) : mapping relationnel-objet pour des webservices REST. * [Active Record Observers](https://github.com/rails/rails-observers) : classes permettant l'usage du pattern observateur. * [Action Pack page](https://github.com/rails/actionpack-page_caching) : mise en cache du HTML des pages. * [action caching](https://github.com/rails/actionpack-action_caching) : mise en cache du HTML des pages mais les requêtes arrivent toujours à la couche "Action Pack", permettant l'usage des filtres. ## Changelogs ## Pour plus de détails, voici les ChangeLogs complets pour chaque module: * [actionpack](https://github.com/rails/rails/blob/v4.0.0/actionpack/CHANGELOG.md) * [activemodel](https://github.com/rails/rails/blob/v4.0.0/activemodel/CHANGELOG.md) * [activerecord](https://github.com/rails/rails/blob/v4.0.0/activerecord/CHANGELOG.md) * [activesupport](https://github.com/rails/rails/blob/v4.0.0/activesupport/CHANGELOG.md) * [railties](https://github.com/rails/rails/blob/v4.0.0/railties/CHANGELOG.md) # Installation de RoR # ## Installer ruby avec rbenv (recommandé) ## Le plus simple est d'utiliser [rbenv-installer](https://github.com/fesplugas/rbenv-installer) qui nécessite d'avoir [[git]] et [[curl]] sur sa machine : ```shell curl https://raw.github.com/fesplugas/rbenv-installer/master/bin/rbenv-installer | bash ``` _À noter que les ubunteros auront droits à une [étape supplémentaire](https://github.com/fesplugas/rbenv-installer#bootstrap)._ Pour installer la dernière version de ruby, il suffit de lancer : ```shell rbenv install 2.0.0-p247 ``` Puis, pour utiliser cette version par défaut : ```shell rbenv global 2.0.0-p247 ``` N'oubliez pas d'installer l'indispensable [bundler](http://bundler.io/) : ```shell gem install bundler ``` et de signifier à rbenv qu'un nouvel exécutable est maintenant disponible : ```shell rbenv rehash ``` ## Installer ruby avec RVM ## Ruby Version Manager permet d'installer puis gérer différentes versions de ruby. Installation de [RVM](https://rvm.io/) (je passe les détails): ```shell curl -L https://get.rvm.io | bash -s stable ``` Note: RVM s'occupe maintenant d'installer les dépendances pour la compilation de ruby (ex. pour debian: libssl-dev, zlib1g-dev, ...), ce qui n'était pas le cas auparavant et pouvait bloquer un débutant. Installation de ruby 2.0.0 avec RVM: ```shell rvm install 2.0.0 # Aller boire un café/thé/verre d'eau à ce moment-là ``` À ce stade vous pouvez tester l'installation avec un ```ruby -v``` ou bien ```shell echo 'p "Hello world!"'|ruby ``` L'installation de ruby installe également l'outil [gem](http://rubygems.org/), qui est un gestionnaire de paquet pour ruby. Cet outil va nous permettre d'installer rails et ses dépendances. ## Installation de Ruby On Rails ## ```shell gem install rails ``` _Pour les utilisateurs de rbenv , n'oubliez pas de lancer un petit rbenv rehash_ Création d'un projet: ```shell rails new linuxfr_v3 ``` Lancement du serveur rails: ```shell cd linuxfr_v3 bundle exec rails s ``` Note: en cas d'erreur avec le runtime Javascript, il faut: Activer la gem therubyracer dans le fichier Gemfile ```shell sed -i "s/# gem 'therubyracer'/gem 'therubyracer'/" Gemfile ``` Puis installer la gem avec la commande bundle (outil qui permet d'installer toutes les dépendances du projet): ```shell bundle ``` [Ding, c'est prêt](http://0.0.0.0:3000). Il ne vous reste plus qu'à vous lancer dans la création de votre projet rails et bien sur de prévoir quelques heures à lire la documentation, en commençant par [ici]( http://guides.rubyonrails.org/), par [là](http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=4.0) ou [pas loin d'un cimetière](http://railsforzombies.org/).

AltStyle によって変換されたページ (->オリジナル) /