50
Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi 4 juillet 2008 RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

Embed Size (px)

Citation preview

Page 1: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

Présentation de Ruby on Rails

Rencontres Mondiales du Logiciel Libre,Mont-de-Marsan, vendredi 4 juillet 2008

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Page 2: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Guillaume “Zifro” DESRAT<[email protected]> && http://zlab.fr/

• Rubyiste depuis 2002• Railer depuis 2005

• Président de l’association (http://www.rubyfrance.org/)

• participe aux discussions sur les listes RubyFR et RailsFrance• répond à vos questions sur #rubyfr @ irc.freenode.net

• consultant informatique au Luxembourg• en mission chez une banque d’investisseurs

Avant-propos :: présentation de l’orateur

Page 3: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

Présentation de Ruby on Rails

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

• un tour d’horizon de Ruby on Rails• les concepts, les principes mis en oeuvre• un aperçu du code

Rencontres Mondiales du Logiciel Libre,Mont-de-Marsan, vendredi 4 juillet 2008

Avant-propos :: objet de la conférence

Page 4: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails, c’est :

• un framework pour développer des applications Web• écrit en Ruby• basé sur le concept MVC• orienté conventions plutôt que configuration

• libre ! disponible sous licence MIT

Qu’est-ce que Ruby on Rails ?

Page 5: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails, c’est :

• le travail (entre autres !) de David Heinemeier Hansson• la version 1.0 en décembre 2005• la version 2.0 en décembre 2007

• un noyau allégé• plus de fonctionnalités sous forme de plugins• REST

• une version 2.1 le 1er juin 2008• des efforts sur la gestion des TimeZone• les “Dirty Objects” (gestion des modifications)

Qu’est-ce que Ruby on Rails ?

Page 6: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

MVC

Ruby on Rails : basé sur MVC

Page 7: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Modèle - Vue - Contrôleur

• un modèle pour la persistance des données• une vue pour l’interface utilisateur• un contrôleur pour coordonner le tout

• une idée de Trygve Reenskaug, en... 1979

• initialement pensé pour les applications de bureau• adapté au Web par la suite

Ruby on Rails : basé sur MVC

Page 8: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Architecture MVC pour le Web :

Navigateur

Base de données

Vue

Contrôleur6

5

4

3

2

1

Modèle

Ruby on Rails : basé sur MVC

Page 9: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : basé sur MVC

Des URL différentes :

http://zlab.fr/books/show/1

• site Web : zlab.fr• contrôleur : Books• action : show• un paramètre, id, qui vaut 1

• une convention ( ), paramétrable

Page 10: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : des conventions ( )

Conventionsvs.

Configuration

Page 11: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

development:

adapter: oci

username: zifro

password: rubycl

eschlop

host: SERVER

# Warning: The dat

abase defined as '

test' will be eras

ed and

# re-generated fro

m your development

database when you

run 'rake'.

# Do not set this

db to the same as

development or pro

duction.

test: adapter

: oci

username: zifro

password: ecrive

z-des-tests

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : des conventions ( )

Ruby on Rails privilégie l’utilisation de conventions plutôt que l’emploi de fichiers de configuration :

• des comportements par défaut qui se posent en standard• moins de code, donc moins d’erreurs possibles• des conventions que l’on peut ignorer, au besoin

Un fichier de configuration tout de même, pour la connexion aux bases de données (format YAML)

Page 12: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : des conventions ( )

Architecture sur le disque :

• une structure de fichiers complète

• MVC : séparation des modèles, vues et contrôleurs

zlab.fr:~/rmll zifro$ ls demoREADME config lib script vendorRakefile db log test app doc public tmp

zlab.fr:~/rmll zifro$ ls demo/appcontrollers helpers models views

Page 13: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : basé sur MVC

ActiveRecord

Page 14: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

ActiveRecord, c’est :

• le M dans MVC

• un Object Relational Mapper• les tables sont représentées par des classes• les enregistrements par des objets• les champs par des attributs

id title author

1 The Ruby Way Hal Fulton

2 Ruby for Rails David A. Black

Table “Books”

<Book>id = 1title = ‘The Ruby Way’author = ‘Hal Fulton’

<Book>id = 2title = ‘Ruby for Rails’author = ‘David A. Black’

Page 15: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

Définition du modèle “Book”, pour représenter les livres enregistrés dans la base de données :

class Book < ActiveRecord::Baseend

• convention : une classe correspond à une table portant le même nom au pluriel• inutile de définir les attributs, ActiveRecord les lit directement dans la base de données

Page 16: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

On ne manipule que des objets Ruby : • création d’un objet :

• initialisation de ses attributs :

• lecture des attributs :

• sauvegarde de l’objet :

• création et sauvegarde :

• suppression :

b = Book.new

b.title = 'Agile Web Development with Rails'b.author = 'Dave Thomas & David Heinemeier Hansson'

b.title # renvoie 'Agile Web Development with Rails'

b.save # renvoie true ou falseb.save! # lève une exception en cas d’erreur

b.create :title => 'Ruby in a Nutshell', :author => 'Matz'

b.delete

Page 17: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

ActiveRecord, c’est aussi :

• des méthodes pour interroger les modèles (des “finders”)

id title author

1 The Ruby Way Hal Fulton

2 Ruby for Rails David A. Black

Table “Books” class Book < ActiveRecord::Baseend

b = Book.find 1b = Book.find :first, :conditions => ['title LIKE ?', '%Ruby%']b = Book.find :all, :conditions => ['title LIKE ?', '%Ruby%']b = Book.find_by_author 'Hal Fulton'b = Book.find_by_title 'Ruby for Rails'

Page 18: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

ActiveRecord, c’est aussi :

• la description des relations entre les modèles

id title author category_id

1 The Ruby Way Hal Fulton 1

2 Ruby for Rails David A. Black 1

Table “Books”

id label

1 Computing

2 Fiction

Table “Categories”

class Book < ActiveRecord::Base belongs_to :categoryend

class Category < ActiveRecord::Baseend

Page 19: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

Ce qui permet d’écrire :

b = Book.find_by_title 'Ruby for Rails'b.category.label

c = Category.find_by_label 'Fiction'

b = Book.create :title => 'Winter Hauntering', :author => 'Dan Simmons', :category_id => c.id

b = Book.newb.title = 'The man who disappears'b.author = 'Jeffery Deavers'b.category = cb.save

Page 20: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

id title author category_id

1 The Ruby Way Hal Fulton 1

2 Ruby for Rails David A. Black 1

Table “Books”

id label

1 Computing

2 Fiction

Table “Categories”

class Book < ActiveRecord::Base belongs_to :categoryend

Pour traverser la relation depuis l’autre modèle :

class Category < ActiveRecord::Base has_many :booksend

Page 21: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

Ce qui permet d’écrire :

c = Category.find_by_label 'Computing'c.books

b = Book.create :title => 'Hyperion', :author => 'Dan Simmons'

fiction = Category.find_by_label 'Fiction'fiction.books << bfiction.books.find :all,

:conditions => ['author = ?', 'Dan Simmons']

Page 22: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveRecord

ActiveRecord, c’est aussi :

• des méthodes pour valider les données du modèle

class Book < ActiveRecord::Base

belongs_to :category

validates_presence_of :title, :author validates_length_of :title, :minimum => 2

def validate self.errors.add :author, ’Not actually an author’if self.author == 'Why the luck stiff' end

end

Page 23: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : basé sur MVC

ActionView

Page 24: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

ActionView, c’est :

• le V dans MVC

• un système de génération d’interface Web, avec :• des layouts (gabarits)• des pages qui s’intègrent dans les layouts• des balises spécifiques pour intégrer du code Ruby (eRB)• des fichiers .rhtml dans app/views/

Page 25: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

Exemple de layout :

<html> <head> <title>RMLL : Ruby on Rails demo</title> </head> <body> <%= yield %> </body></html>

• permet de partager une charte graphique, une présentation, entre plusieurs pages• <%= yield %> est remplacé par le contenu de la vue qui est rendue

Page 26: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

Exemple de vue :

• le code Ruby entre <% et %> est exécuté• le code Ruby entre <%= et %> est exécuté et sa sortie standard est écrite dans la vue

<h1>Titre du livre</h1>par <i>Auteur du livre</i>

<% date = Time.now %><% if date.hour < 12 %>page générée le matin du <% else %>page générée l'après-midi du <% end %><%= date.strftime '%d/%m' %>

Page 27: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

Page générée :

<html> <head> <title>RMLL : Ruby on Rails demo</title> </head> <body> <h1>Titre du livre</h1> par <i>Auteur du livre</i> page générée l’après-midi du 04/07 </body></html>

Page 28: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

La même vue, dynamique :

• la vue a accès aux variables du contrôleur• elle ne contient normalement aucune logique• si beaucoup de code est nécessaire pour un affichage, les helpers prennent le relais

<h1><%= @book.title %></h1>par <i><%= @book.author %></i>

<% date = Time.now %><% if date.hour < 12 %>page générée le matin du <% else %>page générée l'après-midi du <% end %><%= date.strftime '%d/%m' %>

Page 29: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

L’autre facette d’ActionView :

• remplace avantageusement les <a>

• plus on utilise ActionView... moins on écrit d’HTML

<%= link_to 'Livre suivant', :controller => 'books', :action => 'show', :id => (params[:id] + 1) %>

Page 30: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionView

ActionView, c’est aussi :

• la possibilité de faire de l’AJAX (classique et RJS)• la possibilité d’utiliser Prototype et script.aculo.us

• sans écrire une ligne de Javascript, seulement du Ruby

<%= link_to_remote "<h1>#{@book.title}</h1>", :update => 'author', :url => { :action => :update_author } %>par <i id="author">auteur</i>

Page 31: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : basé sur MVC

ActionController

Page 32: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

ActionController, c’est :

• le C dans MVC

• le chef d’orchestre• il contient la logique de l’application• il interroge le modèle• manipule les données récupérées• détermine la vue à afficher à l’utilisateur

Page 33: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

Définition du contrôleur “Books”, pour afficher les livres enregistrés dans la base de données :

• le contrôleur est une classe• l’action est une méthode• le nom de l’action permet de déduire la vue à rendre

class BooksController < ApplicationController def show endend

Page 34: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

Base de données

3

2 Modèle

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

Navigateur

Vue

Contrôleur6

5

4

1

http://zlab.fr/books/show/1

class BooksController < ApplicationController def show endend

Page 35: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

Définition du contrôleur “Books”, pour afficher les livres enregistrés dans la base de données :

• le contrôleur interroge le modèle• à la fin de l’exécution, la vue est rendue, dans le layout

class BooksController < ApplicationController def show @book = Book.find params[:id] end end

Page 36: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

Gestion d’un paramètre “id” qui puisse être inexistant dans la base de données :

class BooksController < ApplicationController def show begin @book = Book.find params[:id] render :layout => 'special' rescue redirect_to :controller => 'error', :action => 'raised',

:id => params[:id] end end end

Page 37: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActionController

Suppression d’un livre :class BooksController < ApplicationController def show # ... end def delete @book = Book.find params[:id] if @book.delete redirect_to :action => 'list' else flash[:notice] = 'Erreur à la suppression' render :action => 'show' end end end

Page 38: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails

ActiveSupport

Page 39: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveSupport

ActiveSupport, c’est :

• le S dans Sympathique

• des extensions des classes de base de Ruby• pour simplifier le développement• améliorer la lisibilité du code

Page 40: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ActiveSupport

1.kilobyte # => 10241.megabyte # => 1048576

2.days.before # => Fri Jul 02 16:37:16 +0200 20081.day.from_now # => Fri Jul 05 16:37:16 +0200 20087.days + 1.week # => 12096001.year / 1.day # => 365

nil.blank? # => true''.blank? # => true{}.blank? # => true[].blank? # => true

ActiveSupport, c’est :

Page 41: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails

Mais encore ?(ce dont je n’ai pas le temps de vous parler)

Page 42: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : mais encore ?

Ruby on Rails, c’est :

• un framework qui intègre les tests dès le départ

• ActionMailer

• des Web services REST• ActiveResource

• plusieurs systèmes de templating pour ActionView

• des plugins pour quasiment tout ce qui peut être nécessaire

• du code Ruby qu’il est bon de lire

Page 43: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ruby on Rails : ressources

Ressources

Page 44: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ressources en Anglais

Sites Web :• le site officiel Ruby on Rails (http://www.rubyonrails.org/)• le site officiel Ruby (http://www.ruby-lang.org/)• les sites et blogs axés “Web 2.0” (PeepCode, ...)

Listes de diffusion :• les listes officielles @rubyonrails.org• Ruby-Talk et Ruby-Core @ruby-lang.org

Groupe de discussion :• comp.lang.ruby

IRC :• #rubyonrails sur le réseau Freenode• #ruby-lang sur le même réseau

Page 45: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ressources en Anglais

Livres :

• Agile Web Development with Rails, 2nd edition, (The Pragmatic Programmers)

• The Rails Way, Obie Fernandez (Addison-Wesley)

• Advanced Rails Recipes, Mike Clark (The Pragmatic Programmers)

• Programming Ruby, Dave Thomas (The Pragmatic Programmers)

• The Ruby Way, Hal Fulton (Addison Wesley)

Page 46: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ressources en Français

Sites Web :• le portail RailsFrance (http://www.railsfrance.org/)• le portail RubyFrance (http://www.rubyfrance.org)• le site officiel Ruby, en Français (http://www.ruby-lang.org/fr/)• les nombreux blogs de la communauté francophone

• http://boldr.org/, de Nicolas Mérouze• http://frederic.logier.org/, de Frédéric Logier• http://blog.shingara.fr/, de Cyril Mougel• ...

Listes de diffusion :• RailsFrance, groupe Google (http://groups.google.com/)• RubyFR-public, groupe Google

Groupe de discussion :• fr.comp.lang.ruby

IRC :• #rubyonrails.fr et #rubyfr sur le réseau Freenode

Page 47: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Ressources en Français

Livres :

• Ruby on Rails, 2ème édition, Dave Thomas & David Heinemeier Hansson (Eyrolles)

• Ruby et Rails, David A. Black (CampusPress)

• Pratique de Ruby on Rails, Eric Sarrion (O’Reilly)

• Recettes Rails, Chad Fowler (CampusPress)

• Ruby par l’exemple, Lucas Carlson & Leonard Richardson (O’Reilly)

• Débuter en programmation avec Ruby, Chris Pine (CampusPress)

Page 48: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

C’est fini...

Des questions ?

Page 49: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

C’est fini...

Merci !

Page 50: Présentation de Ruby on Rails - 2008.rmll.info2008.rmll.info/IMG/pdf/RubyOnRails.pdf · Présentation de Ruby on Rails Rencontres Mondiales du Logiciel Libre, Mont-de-Marsan, vendredi

RMLL 2008 - Présentation de Ruby on Rails - Guillaume “Zifro” DESRAT

Licence de ce document

Vous êtes libres de reproduire, distribuer et communiquer cette création au public, selon les conditions suivantes :

•Paternité• Vous devez citer le nom de l'auteur original de la manière indiquée par l'auteur de l'oeuvre ou le titulaire des droits qui vous confère cette autorisation

(mais pas d'une manière qui suggérerait qu'ils vous soutiennent ou approuvent votre utilisation de l'oeuvre)

•Pas d’utilisation commerciale• Vous n'avez pas le droit d'utiliser cette création à des fins commerciales

•Pas de modification• Vous n'avez pas le droit de modifier, de transformer ou d'adapter cette création.

•résumé explicatif disponible sur http://creativecommons.org/licenses/by-nc-nd/2.0/fr/

•vous êtes autorisés à réutiliser le logo Ruby France employé dans cette présentation, pour faire référence à l’association