• Like

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Présentation Ruby On Rails

  • 731 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
731
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Pr´sentation e Ruby On Rails R´mi Laurent e Pr´sentation Ruby On Rails e R´mi Laurent e FSUGAr - http://www.fsugar.be 21 avril 2007
  • 2. Pr´sentation e Ruby On Rails R´mi Laurent e Ruby Webbrick Rake Premi`re partie I e Ruby
  • 3. Ruby Pr´sentation e Ruby On Rails R´mi Laurent e Ruby Bas´ sur le langage Ruby, e Webbrick voir l’ancienne pr´sentation e Rake R´sum´ : Ruby c’est fnu (tm) e e Orient´ Objet e It´rateurs : collect, each & others e Op´rateurs sur les collections de donn´e e e Classes anonymes : Struct
  • 4. Webbrick Pr´sentation e Ruby On Rails R´mi Laurent e Ruby Serveur web totalement ´crit en Ruby. e Webbrick Rake Utilis´ pendant les phases de d´veloppement. e e logging param`trable e debugging / breakpoint activation ou non du caching tests fonctionnels c’est lent, pour la production : lighttpd, mongrel, ...
  • 5. Rake Pr´sentation e Ruby On Rails R´mi Laurent e Ruby Webbrick Rake - Ruby make Rake migration (base de donn´e) e automatisation des tests nettoyage cache/session g´n´ration documentation e e d´ploiement / ’packaging’ e
  • 6. Pr´sentation e Ruby On Rails R´mi Laurent e Donn´es e pr´sent´es e e Validation Relations Deuxi`me partie II e Migration Mod`le e
  • 7. Un mod`le ? e Pr´sentation e Ruby On Rails R´mi Laurent e Donn´es e pr´sent´es e e Un mod`le ? e Validation Relations la repr´sentation d’un objet e Migration les op´rations sur cet objet e les op´rations sur une classe d’objets e les relations avec d’autres classes d’objets les contraintes pour que l’objet soit coh´rent e
  • 8. Donn´es pr´sent´es e e e Pr´sentation e Ruby On Rails R´mi Laurent e Donn´es e pr´sent´es e e Validation Une facture est constitu´e de commandes, e Relations constitu´e un total ` payer, e a Migration a un client qui devra la payer, a une date limite de facturation, a un ´tat (pay´, en attente, en retard, ...) e e
  • 9. Validation Pr´sentation e Ruby On Rails R´mi Laurent e Encore faut-il que les donn´es fournies soient coh´rentes ? e e Donn´es e pr´sent´es e e Normalement la BD s’en occupe ... Mysql ? Validation validates presence of Relations validates uniqueness of Migration validates associated validates format of validates length of validates numericality of Et toutes les m´thodes suppl´mentaires qu’on voudrait rajouter e e ’` la main’ a
  • 10. Etapes validation Pr´sentation e Ruby On Rails R´mi Laurent e Donn´es e A la mise ` jour ou ` la cr´ation : a a e pr´sent´es e e Validation before validation Relations after validation Migration before save before create/update after create/update after save Ou encore before destroy et after destroy
  • 11. Relations Pr´sentation e Ruby On Rails R´mi Laurent e Donn´es e pr´sent´es e e Relations entre les diff´rentes classes d’objets e Validation Relations has many Migration has one has and belongs to many mod`le arbre e h´ritage e
  • 12. Migration Pr´sentation e Ruby On Rails R´mi Laurent e def self.up create_table :comments do |t| Donn´es e pr´sent´es e e t.column :author, :string, :null => false Validation t.column :title, :string, :null => false Relations t.column :text, :text, :null => false Migration 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. Pr´sentation e Ruby On Rails R´mi Laurent e Troisi`me partie III e Contrˆleur o
  • 14. Contrˆleur o Pr´sentation e Ruby On Rails R´mi Laurent e Le contrˆleur traˆ les objets (mod`les) o ıte e en fonction des actions (url) demand´es, e ainsi que des param`tres (GET / POST), e redirige vers une page, ou fait en rendu d’une vue avec les donn´es obtenues. e
  • 15. Requˆte DB e Pr´sentation e Ruby On Rails R´mi Laurent e 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ˆte, suivie d’une e autre portant uniquement sur les r´sultats renvoy´s par la e e premi`re. e
  • 16. Filtre Pr´sentation e Ruby On Rails R´mi Laurent e On peut ´galement placer des filtres, avant ou apr`s une action. e e Utile pour sp´cifier qu’une page ne peut ˆtre vue que si un e e utilisateur est authentifi´. e Ou bien pour r´aliser une trace de la visite de l’utilisateur (petit e poucet).
  • 17. get/post/xml/... Pr´sentation e Ruby On Rails R´mi Laurent e En fonction du type de requˆte effectu´e e e GET, POST, AJAX on peut servir des pages diff´rentes e HTML, RJS, XML, binary (PDF, PNG, ...)
  • 18. Pr´sentation e Ruby On Rails R´mi Laurent e Tag Helper Ajax Layout & Partial Quatri`me partie IV e View Helper Vue
  • 19. Vue Pr´sentation e Ruby On Rails R´mi Laurent e Tag Helper Ajax Layout & Partial La vue pr´sente simplement les donn´es collect´es, e e e View Helper une interface avec l’utilisateur il s’agit en fait des pages Web de notre application.
  • 20. Tag Helper Pr´sentation e Ruby On Rails R´mi Laurent e Tout une s´rie d’assistance pour g´n´rer la plupart des tags e e e Tag Helper int´ressants. e Ajax hidden field Layout & Partial text field View Helper text area date picker collection select link to text field with autocomplete ? La s´lection ou les valeurs sont automatiquement effectu´es e e dans le cas d’une ´dition d’une donn´e par exemple. e e
  • 21. Vue Pr´sentation e Ruby On Rails R´mi Laurent e Tag Helper Ajax La pluparts des fonctionnalit´s d’AJAX sont propos´es sous e e Layout & forme de tags ´galement, exemple pr´c´dent ou encore e e e Partial View Helper <%= link_to_remote "Cacher", :complete => "new Effect.Fade(’my_div’)", :url => { :action => ’hide_data’, :id => my_data } %>
  • 22. Layout & Partial Pr´sentation e Ruby On Rails R´mi Laurent e Tag Helper Ajax Layout & Partial Layout, un layout et du contenu. View Helper Partial, un morceau de page avec une injection de donn´es e ou encore une partie de page rafraˆ ıchie avec du JavaScript.
  • 23. Vue Pr´sentation e Ruby On Rails R´mi Laurent e Tag Helper Ajax Toute une s´rie de ’helpers’ pour faciliter la vie, e Layout & Partial la possibilit´ d’en faire soi-mˆme e e View Helper get day(21,4,2007) username ...
  • 24. Pr´sentation e Ruby On Rails R´mi Laurent e Cinqui`me partie V e Walkthrough
  • 25. Walkthrough Pr´sentation e Ruby On Rails R´mi Laurent e 1 affiche une vue (` partir d’un contrˆleur), a o 2 l’utilisateur r´alise des actions (´ventuellement AJAX), e e 3 POST/GET, passage dans le contrˆleur,traˆ o ıtement des informations, 4 gestion grˆce aux mod`les (validation, relations, ...), a e 5 redirection vers/rendu d’une vue, 6 GOTO 1
  • 26. FHS Pr´sentation e Ruby On Rails R´mi Laurent e app controllers views models helpers test fixtures functional unit db config
  • 27. Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Sessions Plugins Septi`me partie VII e Webservices Various
  • 28. Environnement Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Sessions Plugins Development Webservices Testing Unitaires Fonctionnels Production
  • 29. Sessions Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Sessions Plugins Webservices Support relativement simple des sessions session[ :my object] permet de s´rialiser n’importe quoi on presque e
  • 30. Flash Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Sessions Plugins Variables de sessions assez sp´ciales e Webservices gard´es que d’un contrˆleur ` l’autre e o a peuvent ˆtre conserv´s d’un contrˆleur ` l’autre en le sp´cifiant e e o a e explicitement.
  • 31. Plugins Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Support de plugins via un script qui liste les plugins disponibles, Sessions g`re leur mise ` jour (svn), divers plugins existent : e a Plugins internationalisation Webservices authentification messages d’erreurs personnalis´s e wiki / r´vision de versions e mise en forme HTML ` partir d’une syntaxe Wiki a etc ...
  • 32. Webservices Pr´sentation e Ruby On Rails R´mi Laurent e Environnement Sessions Plugins Webservices Y’en a, RTFM
  • 33. Pr´sentation e Ruby On Rails R´mi Laurent e Documentation en ligne Documentation int´gr´e e e Huiti`me partie VIII e Livres R´f´rences ee
  • 34. Documentation en ligne Pr´sentation e Ruby On Rails R´mi Laurent e Documentation en ligne Documentation int´gr´e e e http ://api.rubyonrails.org Livres http ://www.rubyonrails.org http ://www.railsfrance.org des PDF que je mettrai sur mon site
  • 35. R´f´rences ee Pr´sentation e Ruby On Rails R´mi Laurent e Documentation en ligne Documentation int´gr´e e e Livres gem server : documentation des packages install´s par e Rails rake doc :plugins (documentation des plugins install´s) e
  • 36. R´f´rences ee Pr´sentation e Ruby On Rails R´mi Laurent e Documentation en ligne Documentation int´gr´e e e Livres Agile Web Development with Ruby On Rails Rails Recipes Ruby Rails Up and Running