Initiation àRuby on RailsRuby on Rails@humancoders
@matthieusegret
Matthieu SegretFormateur Ruby on RailsCofondateur de Human Coders
Formation
Un langage :Ruby
• Langage interprété / orienté objet• Libre - Licence Ruby et GPL• Version 1.9.3 (bientôt 2.0)• Apparu en 1995Ruby
puts "Hello world"Ruby"ruby is cool".length # 12-42.abs # 42"Nice Day Isnt It?".downcase.split# ["nice", "day", "isnt", "i...
class Bookdef initialize(name)@name = nameenddef name@nameendendRubybook = Book.new("Programming Ruby")book.name # "Progra...
Un framework :Ruby on Rails
• Framework web écrit en Ruby• Libre - MIT• Version 3.2 (bientôt 4.0)• Apparu en 2004Ruby on Rails
Convention overConfiguration
DRY(Don’t Repeat Yourself)
Projet : MyNotes
Projet : MyNotes$ rails new MyNotes• Créer un nouveau projet$ cd MyNotes$ rails server• Démarrer le serveur
ViewControllerModelRouting
CRUD
CreateReadUpdateDeleteCRUD
Ressource : notesnotesid integertitle varcharcontent text
$ rails generate scaffold note title content:textinvoke active_recordcreatedb/migrate/20130130171611_create_notes.rbcreate...
Migration
migration 1migration 2migration 3migration 4devise_create_usersacts_as_followercreate_notesadd_profile_to_users20110720095...
Migrationclass CreateNotes < ActiveRecord::Migrationdef changecreate_table :notes do |t|t.string :titlet.text :contentt.ti...
Base de donnéesnotesid integertitle varcharcontent text
Modèle
ViewControllerModelRouting
Modèleclass Note < ActiveRecord::Baseendapp/models/note.rb
Modèle : créationNote.create(content: "I created Ruby", title: "Matz")
Modèle : mise à journote = Note.find(1)note.content = "I love Ruby"note.save
Modèle : lectureNote.where(:title => "Matz").order("title ASC").limit(5)
Modèle : suppressionNote.find(1).destroy
Vue
ViewControllerModelRouting
ERB<p><b>Title:</b><%= @note.title %></p><p><b>Content:</b><%= @note.content %></p>app/views/notes/show.html.erb
Formulaires<%= form_for(@note) do |f| %><%= f.label :title %><%= f.text_field :title %><%= f.label :content %><%= f.text_a...
Contrôleur
ViewControllerModelRouting
Contrôleurclass NotesController < ApplicationControllerdef show@note = Note.find(params[:id])endendapp/controllers/notes_c...
Déploiement
Les gems
IndexationTwitterNoSQLPaiement en ligneGéolocalisationParsingPaginationCacheTâches defondsUpload defichiersFacebookAuthent...
La commautéeFrançaise
MontpellierLyonToulouseNantesRennesLilleParisSophia AntipolisStrasbourgMarseilleCompiegneBordeaux
Aller plus loin
Programming Ruby 1.9 (3rdedition)Agile Web Development with Rails(4th edition)
Formation
@humancodersMerci !
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Initiation à Ruby on Rails
Prochain SlideShare
Chargement dans... 5
×

Initiation à Ruby on Rails

251

Published on

Cette conférence a pour but de vous faire (re)découvrir le framework web Ruby on Rails. En une heure, nous vous montrerons comment développer une application simple et la déployer sur Microsoft Azure. Nous nous ferons découvrir le dynamisme de la communauté Ruby.

Published in: Technologies
0 commentaires
0 mentions J'aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Be the first to like this

Aucun téléchargement
Vues
Total des vues
251
Sur Slideshare
0
À partir des ajouts
0
Nombre d'ajouts
0
Actions
Partages
0
Téléchargements
10
Commentaires
0
J'aime
0
Ajouts 0
No embeds

No notes for slide

Initiation à Ruby on Rails

  1. 1. Initiation àRuby on RailsRuby on Rails@humancoders
  2. 2. @matthieusegret
  3. 3. Matthieu SegretFormateur Ruby on RailsCofondateur de Human Coders
  4. 4. Formation
  5. 5. Un langage :Ruby
  6. 6. • Langage interprété / orienté objet• Libre - Licence Ruby et GPL• Version 1.9.3 (bientôt 2.0)• Apparu en 1995Ruby
  7. 7. puts "Hello world"Ruby"ruby is cool".length # 12-42.abs # 42"Nice Day Isnt It?".downcase.split# ["nice", "day", "isnt", "it?"]
  8. 8. class Bookdef initialize(name)@name = nameenddef name@nameendendRubybook = Book.new("Programming Ruby")book.name # "Programming Ruby"
  9. 9. Un framework :Ruby on Rails
  10. 10. • Framework web écrit en Ruby• Libre - MIT• Version 3.2 (bientôt 4.0)• Apparu en 2004Ruby on Rails
  11. 11. Convention overConfiguration
  12. 12. DRY(Don’t Repeat Yourself)
  13. 13. Projet : MyNotes
  14. 14. Projet : MyNotes$ rails new MyNotes• Créer un nouveau projet$ cd MyNotes$ rails server• Démarrer le serveur
  15. 15. ViewControllerModelRouting
  16. 16. CRUD
  17. 17. CreateReadUpdateDeleteCRUD
  18. 18. Ressource : notesnotesid integertitle varcharcontent text
  19. 19. $ rails generate scaffold note title content:textinvoke active_recordcreatedb/migrate/20130130171611_create_notes.rbcreateapp/models/note.rbinvoke test_unitcreatetest/unit/note_test.rbcreatetest/fixtures/notes.ymlinvoke resource_routerouteresources :notesinvoke scaffold_controllercreateapp/controllers/notes_controller.rbinvokeerbcreate app/views/notescreateapp/views/notes/index.html.erbcreateapp/views/notes/edit.html.erbcreateapp/views/notes/show.html.erbcreateapp/views/notes/new.html.erbcreate app/views/notes/_form.html.erb...Génération du CRUD
  20. 20. Migration
  21. 21. migration 1migration 2migration 3migration 4devise_create_usersacts_as_followercreate_notesadd_profile_to_users20110720095338_20110718190746_20110715205012_20110605152153_rake db:migrate rake db:rollbackcurrent.rbMigration
  22. 22. Migrationclass CreateNotes < ActiveRecord::Migrationdef changecreate_table :notes do |t|t.string :titlet.text :contentt.timestampsendendenddb/migrate/20130130175117_create_notes.rb$ rake db:migrate
  23. 23. Base de donnéesnotesid integertitle varcharcontent text
  24. 24. Modèle
  25. 25. ViewControllerModelRouting
  26. 26. Modèleclass Note < ActiveRecord::Baseendapp/models/note.rb
  27. 27. Modèle : créationNote.create(content: "I created Ruby", title: "Matz")
  28. 28. Modèle : mise à journote = Note.find(1)note.content = "I love Ruby"note.save
  29. 29. Modèle : lectureNote.where(:title => "Matz").order("title ASC").limit(5)
  30. 30. Modèle : suppressionNote.find(1).destroy
  31. 31. Vue
  32. 32. ViewControllerModelRouting
  33. 33. ERB<p><b>Title:</b><%= @note.title %></p><p><b>Content:</b><%= @note.content %></p>app/views/notes/show.html.erb
  34. 34. Formulaires<%= form_for(@note) do |f| %><%= f.label :title %><%= f.text_field :title %><%= f.label :content %><%= f.text_area :content %><%= f.submit %><% end %>
  35. 35. Contrôleur
  36. 36. ViewControllerModelRouting
  37. 37. Contrôleurclass NotesController < ApplicationControllerdef show@note = Note.find(params[:id])endendapp/controllers/notes_controller.rbapp/views/notes/show.html.erbRequestGET /notes/1<p><b>Title:</b><%= @note.title %></p>
  38. 38. Déploiement
  39. 39. Les gems
  40. 40. IndexationTwitterNoSQLPaiement en ligneGéolocalisationParsingPaginationCacheTâches defondsUpload defichiersFacebookAuthentificationLocalisationOAuthA/B testeLDAP
  41. 41. La commautéeFrançaise
  42. 42. MontpellierLyonToulouseNantesRennesLilleParisSophia AntipolisStrasbourgMarseilleCompiegneBordeaux
  43. 43. Aller plus loin
  44. 44. Programming Ruby 1.9 (3rdedition)Agile Web Development with Rails(4th edition)
  45. 45. Formation
  46. 46. @humancodersMerci !
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×