Pr´esentation
Ruby On Rails
R´emi Laurent
Pr´esentation Ruby On Rails
R´emi Laurent
FSUGAr - http://www.fsugar.be
21 avril...
Pr´esentation
Ruby On Rails
R´emi Laurent
Ruby
Webbrick
Rake Premi`ere partie I
Ruby
Pr´esentation
Ruby On Rails
R´emi Laurent
Ruby
Webbrick
Rake
Ruby
Bas´e sur le langage Ruby,
voir l’ancienne pr´esentation...
Pr´esentation
Ruby On Rails
R´emi Laurent
Ruby
Webbrick
Rake
Webbrick
Serveur web totalement ´ecrit en Ruby.
Utilis´e pend...
Pr´esentation
Ruby On Rails
R´emi Laurent
Ruby
Webbrick
Rake
Rake
Rake - Ruby make
migration (base de donn´ee)
automatisat...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Deuxi`eme partie II
Mod`ele
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Un mod`ele ?
Un mod`ele ?
l...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Donn´ees pr´esent´ees
Une f...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Validation
Encore faut-il q...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Etapes validation
A la mise...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Relations
Relations entre l...
Pr´esentation
Ruby On Rails
R´emi Laurent
Donn´ees
pr´esent´ees
Validation
Relations
Migration
Migration
def self.up
creat...
Pr´esentation
Ruby On Rails
R´emi Laurent
Troisi`eme partie III
Contrˆoleur
Pr´esentation
Ruby On Rails
R´emi Laurent
Contrˆoleur
Le contrˆoleur traˆıte les objets (mod`eles)
en fonction des actions...
Pr´esentation
Ruby On Rails
R´emi Laurent
Requˆete DB
Article.find(params[:id])
Article.find(:first,
:conditions => [ "tit...
Pr´esentation
Ruby On Rails
R´emi Laurent
Filtre
On peut ´egalement placer des filtres, avant ou apr`es une action.
Utile p...
Pr´esentation
Ruby On Rails
R´emi Laurent
get/post/xml/...
En fonction du type de requˆete effectu´ee
GET, POST, AJAX
on pe...
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Quatri`eme partie IV
Vue
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Vue
La vue pr´esente simplement les...
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Tag Helper
Tout une s´erie d’assist...
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Vue
La pluparts des fonctionnalit´e...
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Layout & Partial
Layout, un layout ...
Pr´esentation
Ruby On Rails
R´emi Laurent
Tag Helper
Ajax
Layout &
Partial
View Helper
Vue
Toute une s´erie de ’helpers’ p...
Pr´esentation
Ruby On Rails
R´emi Laurent
Cinqui`eme partie V
Walkthrough
Pr´esentation
Ruby On Rails
R´emi Laurent
Walkthrough
1 affiche une vue (`a partir d’un contrˆoleur),
2 l’utilisateur r´eali...
Pr´esentation
Ruby On Rails
R´emi Laurent
FHS
app
controllers
views
models
helpers
test
fixtures
functional
unit
db
config
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Septi`eme partie VII
Various
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Environnement
Development
Testing
Uni...
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Sessions
Support relativement simple ...
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Flash
Variables de sessions assez sp´...
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Plugins
Support de plugins via un scr...
Pr´esentation
Ruby On Rails
R´emi Laurent
Environnement
Sessions
Plugins
Webservices
Webservices
Y’en a, RTFM
Pr´esentation
Ruby On Rails
R´emi Laurent
Documentation
en ligne
Documentation
int´egr´ee
Livres
Huiti`eme partie VIII
R´e...
Pr´esentation
Ruby On Rails
R´emi Laurent
Documentation
en ligne
Documentation
int´egr´ee
Livres
Documentation en ligne
ht...
Pr´esentation
Ruby On Rails
R´emi Laurent
Documentation
en ligne
Documentation
int´egr´ee
Livres
R´ef´erences
gem server :...
Pr´esentation
Ruby On Rails
R´emi Laurent
Documentation
en ligne
Documentation
int´egr´ee
Livres
R´ef´erences
Agile Web De...
Prochain SlideShare
Chargement dans…5
×

Présentation Ruby On Rails

1 194 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 194
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
13
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Présentation Ruby On Rails

  1. 1. Pr´esentation Ruby On Rails R´emi Laurent Pr´esentation Ruby On Rails R´emi Laurent FSUGAr - http://www.fsugar.be 21 avril 2007
  2. 2. Pr´esentation Ruby On Rails R´emi Laurent Ruby Webbrick Rake Premi`ere partie I Ruby
  3. 3. Pr´esentation Ruby On Rails R´emi Laurent Ruby Webbrick Rake Ruby Bas´e sur le langage Ruby, voir l’ancienne pr´esentation R´esum´e : Ruby c’est fnu (tm) Orient´e Objet It´erateurs : collect, each & others Op´erateurs sur les collections de donn´ee Classes anonymes : Struct
  4. 4. Pr´esentation Ruby On Rails R´emi Laurent Ruby Webbrick Rake Webbrick Serveur web totalement ´ecrit en Ruby. Utilis´e pendant les phases de d´eveloppement. logging param`etrable debugging / breakpoint activation ou non du caching tests fonctionnels c’est lent, pour la production : lighttpd, mongrel, ...
  5. 5. Pr´esentation Ruby On Rails R´emi Laurent Ruby Webbrick Rake Rake Rake - Ruby make migration (base de donn´ee) automatisation des tests nettoyage cache/session g´en´eration documentation d´eploiement / ’packaging’
  6. 6. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Deuxi`eme partie II Mod`ele
  7. 7. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Un mod`ele ? Un mod`ele ? la repr´esentation d’un objet les op´erations sur cet objet les op´erations sur une classe d’objets les relations avec d’autres classes d’objets les contraintes pour que l’objet soit coh´erent
  8. 8. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Donn´ees pr´esent´ees Une facture est constitu´ee de commandes, constitu´ee un total `a payer, a un client qui devra la payer, a une date limite de facturation, a un ´etat (pay´e, en attente, en retard, ...)
  9. 9. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Validation Encore faut-il que les donn´ees fournies soient coh´erentes ? Normalement la BD s’en occupe ... Mysql ? validates presence of validates uniqueness of validates associated validates format of validates length of validates numericality of Et toutes les m´ethodes suppl´ementaires qu’on voudrait rajouter ’`a la main’
  10. 10. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Etapes validation A la mise `a jour ou `a la cr´eation : before validation after validation before save before create/update after create/update after save Ou encore before destroy et after destroy
  11. 11. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Relations Relations entre les diff´erentes classes d’objets has many has one has and belongs to many mod`ele arbre h´eritage
  12. 12. Pr´esentation Ruby On Rails R´emi Laurent Donn´ees pr´esent´ees Validation Relations Migration Migration def self.up create_table :comments do |t| t.column :author, :string, :null => false t.column :title, :string, :null => false t.column :text, :text, :null => false t.column :article_id, :integer, :null => false end execute "ALTER TABLE comments ADD CONSTRAINT fk_comments_articles FOREIGN KEY (article_id) REFERENCES articles(id) ON DELETE RESTRICT;" end def self.down drop_table :comments end
  13. 13. Pr´esentation Ruby On Rails R´emi Laurent Troisi`eme partie III Contrˆoleur
  14. 14. Pr´esentation Ruby On Rails R´emi Laurent Contrˆoleur Le contrˆoleur traˆıte les objets (mod`eles) en fonction des actions (url) demand´ees, ainsi que des param`etres (GET / POST), redirige vers une page, ou fait en rendu d’une vue avec les donn´ees obtenues.
  15. 15. Pr´esentation Ruby On Rails R´emi Laurent Requˆete DB Article.find(params[:id]) Article.find(:first, :conditions => [ "title ilike ?", title ] :order => ’date’) Article.find(:all, :offset => 10, :limit => 10), :group => ’title) Il existe aussi des ’scopes’, on effectue une requˆete, suivie d’une autre portant uniquement sur les r´esultats renvoy´es par la premi`ere.
  16. 16. Pr´esentation Ruby On Rails R´emi Laurent Filtre On peut ´egalement placer des filtres, avant ou apr`es une action. Utile pour sp´ecifier qu’une page ne peut ˆetre vue que si un utilisateur est authentifi´e. Ou bien pour r´ealiser une trace de la visite de l’utilisateur (petit poucet).
  17. 17. Pr´esentation Ruby On Rails R´emi Laurent get/post/xml/... En fonction du type de requˆete effectu´ee GET, POST, AJAX on peut servir des pages diff´erentes HTML, RJS, XML, binary (PDF, PNG, ...)
  18. 18. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Quatri`eme partie IV Vue
  19. 19. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Vue La vue pr´esente simplement les donn´ees collect´ees, une interface avec l’utilisateur il s’agit en fait des pages Web de notre application.
  20. 20. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Tag Helper Tout une s´erie d’assistance pour g´en´erer la plupart des tags int´eressants. hidden field text field text area date picker collection select link to text field with autocomplete ? La s´election ou les valeurs sont automatiquement effectu´ees dans le cas d’une ´edition d’une donn´ee par exemple.
  21. 21. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Vue La pluparts des fonctionnalit´es d’AJAX sont propos´ees sous forme de tags ´egalement, exemple pr´ec´edent ou encore <%= link_to_remote "Cacher", :complete => "new Effect.Fade(’my_div’)", :url => { :action => ’hide_data’, :id => my_data } %>
  22. 22. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Layout & Partial Layout, un layout et du contenu. Partial, un morceau de page avec une injection de donn´ees ou encore une partie de page rafraˆıchie avec du JavaScript.
  23. 23. Pr´esentation Ruby On Rails R´emi Laurent Tag Helper Ajax Layout & Partial View Helper Vue Toute une s´erie de ’helpers’ pour faciliter la vie, la possibilit´e d’en faire soi-mˆeme get day(21,4,2007) username ...
  24. 24. Pr´esentation Ruby On Rails R´emi Laurent Cinqui`eme partie V Walkthrough
  25. 25. Pr´esentation Ruby On Rails R´emi Laurent Walkthrough 1 affiche une vue (`a partir d’un contrˆoleur), 2 l’utilisateur r´ealise des actions (´eventuellement AJAX), 3 POST/GET, passage dans le contrˆoleur,traˆıtement des informations, 4 gestion grˆace aux mod`eles (validation, relations, ...), 5 redirection vers/rendu d’une vue, 6 GOTO 1
  26. 26. Pr´esentation Ruby On Rails R´emi Laurent FHS app controllers views models helpers test fixtures functional unit db config
  27. 27. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Septi`eme partie VII Various
  28. 28. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Environnement Development Testing Unitaires Fonctionnels Production
  29. 29. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Sessions Support relativement simple des sessions session[ :my object] permet de s´erialiser n’importe quoi on presque
  30. 30. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Flash Variables de sessions assez sp´eciales gard´ees que d’un contrˆoleur `a l’autre peuvent ˆetre conserv´es d’un contrˆoleur `a l’autre en le sp´ecifiant explicitement.
  31. 31. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Plugins Support de plugins via un script qui liste les plugins disponibles, g`ere leur mise `a jour (svn), divers plugins existent : internationalisation authentification messages d’erreurs personnalis´es wiki / r´evision de versions mise en forme HTML `a partir d’une syntaxe Wiki etc ...
  32. 32. Pr´esentation Ruby On Rails R´emi Laurent Environnement Sessions Plugins Webservices Webservices Y’en a, RTFM
  33. 33. Pr´esentation Ruby On Rails R´emi Laurent Documentation en ligne Documentation int´egr´ee Livres Huiti`eme partie VIII R´ef´erences
  34. 34. Pr´esentation Ruby On Rails R´emi Laurent Documentation en ligne Documentation int´egr´ee Livres Documentation en ligne http ://api.rubyonrails.org http ://www.rubyonrails.org http ://www.railsfrance.org des PDF que je mettrai sur mon site
  35. 35. Pr´esentation Ruby On Rails R´emi Laurent Documentation en ligne Documentation int´egr´ee Livres R´ef´erences gem server : documentation des packages install´es par Rails rake doc :plugins (documentation des plugins install´es)
  36. 36. Pr´esentation Ruby On Rails R´emi Laurent Documentation en ligne Documentation int´egr´ee Livres R´ef´erences Agile Web Development with Ruby On Rails Rails Recipes Ruby Rails Up and Running

×