Ruby on Rails
Ruby on RailsPourquoi ça déchire ?
whoamiSimon COURTOIS CTO chez Selectra  Githug: simoncTwitter: @happynoff
MV C
M odel View C ontroller
OR M
Object R elational Mapping
Active Recordarticlesid    title         body1     hello world   This is a body                             # app/models/a...
Active Recordarticlesid    title         body             published1     hello world   This is a body   12     other art. ...
ConventionsConfiguration
Active Recordarticles                                      # app/models/article.rbid        title    body   author_id   cl...
Active RecordMySQLPostgreSQLSQLite...
Routing# app/controller/hello_controller.rbclass HelloController < ApplicationController  def index    @name = params[:nam...
Vues# app/controller/hello_controller.rbclass HelloController < ApplicationController  def index    @name = params[:name] ...
Helpers# app/controller/articles_controller.rbclass ArticlesController < ApplicationController  def new    @article = Arti...
Railties$ rake routesGET /hello/:name   { :controller => "hello", :action => "index" }$ rails serverLance un serveur web s...
Générateurs$ rails generate model author name:string  invoke active_record      create db/migrate/20120108151543_create_au...
Générateurs$ rails g scaffold author name:stringcreate   db/migrate/20120108152723_create_authors.rbcreate   app/models/au...
Générateurs # config/routes.rb resources :authors   authors       GET /authors            {   action:   index     controll...
Générateurs
Générateurs
Générateurs
Générateurs
Générateurs
Générateurs
Générateurs
Générateurs
Les petits plus d’ActiveSupport1.kilobytes!   #=> 10243.days.ago!!   #=> Sat, 04 Feb 2012 17:45:42 CET +01:00"héhé test".p...
Extensibilité  Grâce aux Gems
Vues et formulaires<%= form_for @article do |f| %>  <p><%= f.label :title, "Title" %><br />     <%= f.text_field :title %>...
Et tant d’autresMongoid                Pagination     MongoDB                        Kaminari  Carierwave           Systèm...
Qui utilise Rails ? Twitter                                  Github               BasecampPages Jaunes US                 ...
Ressourcesrubyonrails.org                     Site officieltutorials.jumpstartlab.com/topics   Tutorial très completrailsf...
Questions ?
Merci !
Upcoming SlideShare
Loading in …5
×

Introduction à Ruby

387 views

Published on

Dans cette session vous apprendrez tout sur Ruby. Le langage, les frameworks, la communauté, mais surtout un esprit. Passé le teaser, Nicolas Ledez vous présentera comment Ruby peut vous apporter tous les jours une méthodologie dans votre travail, et des outils pour réaliser un prototype rapidement. Quel que soit votre langage d'origine, Ruby complète parfaitement votre boite à outils de développeur/administrateur système.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
387
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introduction à Ruby

  1. 1. Ruby on Rails
  2. 2. Ruby on RailsPourquoi ça déchire ?
  3. 3. whoamiSimon COURTOIS CTO chez Selectra Githug: simoncTwitter: @happynoff
  4. 4. MV C
  5. 5. M odel View C ontroller
  6. 6. OR M
  7. 7. Object R elational Mapping
  8. 8. Active Recordarticlesid title body1 hello world This is a body # app/models/article.rb class Article < ActiveRecord::Base end article = Article.first article.title #=> "hello world"
  9. 9. Active Recordarticlesid title body published1 hello world This is a body 12 other art. Not published 0 articles = Article.where(published: 1) articles.count #=> 1
  10. 10. ConventionsConfiguration
  11. 11. Active Recordarticles # app/models/article.rbid title body author_id class Article < ActiveRec... belongs_to :author1 ... ... 1 end # app/models/author.rb class Author < ActiveRec... authors has_many :articles end id name article = Article.first 1 John Doe article.author.name #=> “John Doe”
  12. 12. Active RecordMySQLPostgreSQLSQLite...
  13. 13. Routing# app/controller/hello_controller.rbclass HelloController < ApplicationController def index @name = params[:name] endend http://example.com/hello/John # config/routes.rb get "hello/:name" => "hello#index" action du contrôleur URL contrôleur verbe HTTP paramètre
  14. 14. Vues# app/controller/hello_controller.rbclass HelloController < ApplicationController def index @name = params[:name] endend# app/views/hello/index.html.erbBonjour <%= @name %> Conventions !
  15. 15. Helpers# app/controller/articles_controller.rbclass ArticlesController < ApplicationController def new @article = Article.new endend Title <%= form_for @article do |f| %> <p><%= f.label :title, "Title" %><br /> <%= f.text_field :title %></p> Body <p><%= f.label :body, "Body" %><br /> <%= f.text_area :body %></p> <p><%= f.submit %></p> <% end %> Create Article
  16. 16. Railties$ rake routesGET /hello/:name { :controller => "hello", :action => "index" }$ rails serverLance un serveur web sur http://localhost:3000/$ rails consoleLance une console avec le contexte de l’application >> Article.first.title #=> "hello world"
  17. 17. Générateurs$ rails generate model author name:string invoke active_record create db/migrate/20120108151543_create_authors.rb create app/models/author.rb instructions de création de la table authors modèle Author
  18. 18. Générateurs$ rails g scaffold author name:stringcreate db/migrate/20120108152723_create_authors.rbcreate app/models/author.rb modèleroute resources :authors routescreate app/controllers/authors_controller.rb contrôleurcreate app/views/authors/index.html.erbcreate app/views/authors/edit.html.erbcreate app/views/authors/show.html.erbcreate app/views/authors/new.html.erb vuescreate app/views/authors/_form.html.erbcreate public/stylesheets/scaffold.css CSS par défaut
  19. 19. Générateurs # config/routes.rb resources :authors authors GET /authors { action: index controller: authors } author GET /authors/:id { action: show controller: authors } new_author GET /authors/new { action: new controller: authors } POST /authors { action: create controller: authors } edit_author GET /authors/:id/edit { action: edit controller: authors } PUT /authors/:id { action: update controller: authors } DELETE /authors/:id { action: destroy controller: authors }<%= link_to "All authors", authors_path %><%= link_to "Edit", edit_author_path(@author) %>
  20. 20. Générateurs
  21. 21. Générateurs
  22. 22. Générateurs
  23. 23. Générateurs
  24. 24. Générateurs
  25. 25. Générateurs
  26. 26. Générateurs
  27. 27. Générateurs
  28. 28. Les petits plus d’ActiveSupport1.kilobytes! #=> 10243.days.ago!! #=> Sat, 04 Feb 2012 17:45:42 CET +01:00"héhé test".parameterize! #=> "hehe-test"“article”.pluralize! ! ! #=> "articles" !
  29. 29. Extensibilité Grâce aux Gems
  30. 30. Vues et formulaires<%= form_for @article do |f| %> <p><%= f.label :title, "Title" %><br /> <%= f.text_field :title %></p> <p><%= f.label :body, "Body" %><br /> <%= f.text_area :body %></p> <p><%= f.submit %></p><% end %> slim + simple_form = simple_form_for @article do |f| = f.input :title = f.input :body = f.submit
  31. 31. Et tant d’autresMongoid Pagination MongoDB Kaminari Carierwave Système d’administration Upload de fichiers Active Admin
  32. 32. Qui utilise Rails ? Twitter Github BasecampPages Jaunes US Groupon Shopify http://rubyonrails.org/applications
  33. 33. Ressourcesrubyonrails.org Site officieltutorials.jumpstartlab.com/topics Tutorial très completrailsforzombies.org Tutorial interactifrailstutorial.org/book Livre gratuit en ligne#rubyonrails.fr Channel IRC français
  34. 34. Questions ?
  35. 35. Merci !

×