Ruby on Rails

                       BarCamp Klagenfurt
                       7. / 8. Februar 2009

                    ...
Inhalt
     Ruby? on Rails
     Ruby on Rails?
     Konzepte
     Installation
     Entwicklungsumgebung
     Beispiel
   ...
Ruby? on Rails (1/3)
     http://www.ruby-lang.org/
     Objekt-orientierte Interpretersprache
             ruby filename....
Ruby? on Rails (2/3)
     Syntax
             Anweisung endet am Ende der Zeile, kein ; notwendig
             Variablen u...
Ruby? on Rails (3/3)
     # Kommentar einzeilig
     =begin
             Kommentar mehrzeilig
     =end
     Variablen wer...
Ruby on Rails? (1/2)
     Framework für datenbankgestützte
     Webapplikationen
     In Ruby geschrieben
     DRY - quot;...
Ruby on Rails? (2/2)
     Model View Controller (MVC)
             Modell (Daten, meist in Datenbanktabellen)
            ...
Konzepte (1/2)
     Generatoren
             Modelle
               CRUD (Create Retrieve Update Delete)
             Cont...
Konzepte (2/2)
     Action Record Naming Convention
             Klasse: Einzahl in Englisch (Student)
             Tabell...
Installation
     http://rubyonrails.org/download
     Ruby (1.8.7)
     RubyGems (1.3.1)
             Ruby package manage...
Entwicklungsumgebungen
     Aptana RadRails
             Allein oder als Eclipse Plugin
             http://www.aptana.com...
Beispiel: BarCamp Lectures
        Umgebung:
             EasyEclipse
             MySQL




     Hermann Stern           ...
Beispiel: Neues Projekt
     Eclipse | Neues Rails Projekt anlegen
             WEBrick
             Mongrel




     Herm...
Beispiel: Verzeichnisse
     Alles hat seinen fixen Platz
             app (Applikation)
               controllers
      ...
Beispiel: Webserver starten
     Direkt von Eclipse aus
     http://localhost:3010/

     TO Dos auf Startseite
          ...
Beispiel: Ruby on Rails Startseite




     Hermann Stern               www.derstern.at
07.02.2009                        ...
Beispiel: Datenbank konfigurieren
     config/database.yml
             Standard: sqlite3
             MySQL, PostgreSQL
 ...
Beispiel: Datenbank anlegen




     Hermann Stern            www.derstern.at
07.02.2009                                  ...
Beispiel: Controlleranlegen
     Startseite der Applikation
     Name des Controllers (home) Aktion (index)

             ...
Beispiel: Modelle und Views anlegen (1/2)
     Lecture
              Name, Lecturer
              script/generate scaffold...
Beispiel: Modelle und Views anlegen (2/2)
     Erstellte Dateien
             controllers/
                lectures_contro...
Beispiel: controllers/lectures_controller.rb




     http://localhost:3001/lectures(.xml)
     Hermann Stern             ...
Beispiel: models/lecture.rb



     Noch leer, da keine „Sonderwünsche“
     Später
       Relationen zu anderen Tabellen
...
Beispiel: views/lectures/index.html.erb




     Hermann Stern               www.derstern.at
07.02.2009                   ...
Beispiel: db/migrate/2009..lectures.rb




     Speichern der Änderungen in die Datenbank
             rake db:migrate


 ...
Beispiel: db/migrate/2009..lectures.rb




     „Normale Tabellen“
             Inhalt kann selber editieren werden
     A...
Beispiel: Default Routen (1/2)
     Pfade durch die Applikation
     Neue Startseite setzen
             public/index.html...
Beispiel: Default Routen (2/2)
     views/home/index.html.erb anpassen

     <h1>BarCamp Anmeldungen</h1>
     <p>
     Li...
Beispiel: Screenshots (1/3)
                        http://localhost:3001/




     Hermann Stern                    www.d...
Beispiel: Screenshots (2/3)




     Hermann Stern            www.derstern.at
07.02.2009                                  ...
Beispiel: Screenshots (3/3)




     Hermann Stern            www.derstern.at
07.02.2009                                  ...
Beispiel: So gehts weiter…
     Anpassen der HTML Templates
     Registration durch Scaffold hinzufügen
     Tabellen verb...
Und jetzt?
     http://en.wikibooks.org/wiki/Ruby_on_Rails
     http://en.wikibooks.org/wiki/Ruby
     http://openbook.gal...
Hermann Stern   www.derstern.at
07.02.2009                             34
Nächste SlideShare
Wird geladen in …5
×

Ruby On Rails Hermann Stern Bcklu

2.182 Aufrufe

Veröffentlicht am

Presentation of Ruby on Rails Intro Session on BarCamp Klagenfurt (2009-02-07).

Veröffentlicht in: Technologie
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
2.182
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
7
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Ruby On Rails Hermann Stern Bcklu

  1. 1. Ruby on Rails BarCamp Klagenfurt 7. / 8. Februar 2009 Hermann Stern hstern@derstern.at http://twitter.com/hstern Hermann Stern www.derstern.at 07.02.2009 1
  2. 2. Inhalt Ruby? on Rails Ruby on Rails? Konzepte Installation Entwicklungsumgebung Beispiel BarCamp Lectures Und jetzt? Hermann Stern www.derstern.at 07.02.2009 2
  3. 3. Ruby? on Rails (1/3) http://www.ruby-lang.org/ Objekt-orientierte Interpretersprache ruby filename.rb Alles ist ein Objekt Zahl 1 ist eine Instanz der Klasse Fixnum Daher keine Funktionen, nur Methoden Dynamisch / Weakly typed Wechsel des Typs einer Variablen möglich Interactive Ruby Shell http://tryruby.hobix.com/ Hermann Stern www.derstern.at 07.02.2009 3
  4. 4. Ruby? on Rails (2/3) Syntax Anweisung endet am Ende der Zeile, kein ; notwendig Variablen und Methoden klein (order_status) Klassen groß (Registration) Variablen: lokal (variable) global ($variable) Instanzvariablen (@variable): Attribute von Objekten Klassenvariablen (@@variable): Alle Instanzen der Klassen teilen sich die Variablen Typen: String, Fixnum, Float, Array etc. Hermann Stern www.derstern.at 07.02.2009 4
  5. 5. Ruby? on Rails (3/3) # Kommentar einzeilig =begin Kommentar mehrzeilig =end Variablen werden nicht deklariert nehmen den Datentyp des zugewiesenen Wertes an a=2 text = „mein Text“ text = String.new(„mein Text“) geht aber auch Methoden text.length() RoR generiert viel Code, von dem man dann weiter arbeiten kann…. Hermann Stern www.derstern.at 07.02.2009 5
  6. 6. Ruby on Rails? (1/2) Framework für datenbankgestützte Webapplikationen In Ruby geschrieben DRY - quot;Don’t Repeat Yourselfquot; Convention Over Configuration Alles hat (s)einen fixen Platz HTML Files, Bilder, JS, etc. Zugriff auf Daten, Pfade, Links normiert Opinionated „there is a best way to do something“ Hermann Stern www.derstern.at 07.02.2009 6
  7. 7. Ruby on Rails? (2/2) Model View Controller (MVC) Modell (Daten, meist in Datenbanktabellen) Action Record View (User Interface, HTML mit Ruby Code) Action View Controller (verbinden Modell und View) Action Controller Wird alles als Ruby Sourcecode generiert Start mit Datenmodell, Controller und View setzen dann darauf auf Hermann Stern www.derstern.at 07.02.2009 7
  8. 8. Konzepte (1/2) Generatoren Modelle CRUD (Create Retrieve Update Delete) Controller Views etc. Scaffolds Modell, View und Controller Rake tasks db:update, db:create; rails:update etc. Hermann Stern www.derstern.at 07.02.2009 8
  9. 9. Konzepte (2/2) Action Record Naming Convention Klasse: Einzahl in Englisch (Student) Tabellen: Mehrzahl in Englisch (students) holt sich RoR aus einem Wörterbuch) • Person => people • Student => students Mapping von URLs auf Methoden in Controllern /controller class name/controller method name http://localhost:3001/lectures http://localhost:3001/lectures/new http://localhost:3001/lectures/show/1 Hermann Stern www.derstern.at 07.02.2009 9
  10. 10. Installation http://rubyonrails.org/download Ruby (1.8.7) RubyGems (1.3.1) Ruby package manager ähnlich wie apt-get Rails (2.2.2) gem install rails Win / MySQL: gem install rails -v 2.1.0 Oder Komplettpakete (Instant Rails etc.) Hermann Stern www.derstern.at 07.02.2009 10
  11. 11. Entwicklungsumgebungen Aptana RadRails Allein oder als Eclipse Plugin http://www.aptana.com/rails/ EasyEclipse http://www.easyeclipse.org/ NetBeans for Ruby http://www.netbeans.org/ Für Puristen: Command line & Text Editor TextMate (OSX), VIM for Rails, Emacs for Rails Hermann Stern www.derstern.at 07.02.2009 11
  12. 12. Beispiel: BarCamp Lectures Umgebung: EasyEclipse MySQL Hermann Stern www.derstern.at 07.02.2009 12
  13. 13. Beispiel: Neues Projekt Eclipse | Neues Rails Projekt anlegen WEBrick Mongrel Hermann Stern www.derstern.at 07.02.2009 13
  14. 14. Beispiel: Verzeichnisse Alles hat seinen fixen Platz app (Applikation) controllers helpers models views config (Konfiguration) public (HTML, JS, Bilder) Hermann Stern www.derstern.at 07.02.2009 14
  15. 15. Beispiel: Webserver starten Direkt von Eclipse aus http://localhost:3010/ TO Dos auf Startseite Datenbank erstellen Controller Modelle und Views Default Routen Hermann Stern www.derstern.at 07.02.2009 15
  16. 16. Beispiel: Ruby on Rails Startseite Hermann Stern www.derstern.at 07.02.2009 16
  17. 17. Beispiel: Datenbank konfigurieren config/database.yml Standard: sqlite3 MySQL, PostgreSQL Drei Umgebungen Entwicklung (kein Cache, bessere Fehlermeldungen, keine Emails) default Produktion (Cache aktiv) Test (für Testklassen) config/environments/<NAME>.rb Definition eigener Umgebungen möglich Hermann Stern www.derstern.at 07.02.2009 17
  18. 18. Beispiel: Datenbank anlegen Hermann Stern www.derstern.at 07.02.2009 18
  19. 19. Beispiel: Controlleranlegen Startseite der Applikation Name des Controllers (home) Aktion (index) Name des Controllers (home) Aktion (index) Angelegte Dateien controllers/home_controller.rb helpers/home_helper.rb views/home/index.html.erb Hermann Stern www.derstern.at 07.02.2009 19
  20. 20. Beispiel: Modelle und Views anlegen (1/2) Lecture Name, Lecturer script/generate scaffold Lecture name:string lecturer:string Registration Firstname, Lastname, Email script/generate scaffold Registration surname:string lastname:string email:string Hermann Stern www.derstern.at 07.02.2009 20
  21. 21. Beispiel: Modelle und Views anlegen (2/2) Erstellte Dateien controllers/ lectures_controller.rb helpers/ lectures_helper.rb models/ lecture.rb views/lectures/ *.html.erb db/migrate/ 20090206204429_create.. Hermann Stern www.derstern.at 07.02.2009 21
  22. 22. Beispiel: controllers/lectures_controller.rb http://localhost:3001/lectures(.xml) Hermann Stern www.derstern.at 07.02.2009 22
  23. 23. Beispiel: models/lecture.rb Noch leer, da keine „Sonderwünsche“ Später Relationen zu anderen Tabellen has_many, belongs_to Validierungen Wert aus einer Liste, Länge, Typ etc. Hermann Stern www.derstern.at 07.02.2009 23
  24. 24. Beispiel: views/lectures/index.html.erb Hermann Stern www.derstern.at 07.02.2009 24
  25. 25. Beispiel: db/migrate/2009..lectures.rb Speichern der Änderungen in die Datenbank rake db:migrate Hermann Stern www.derstern.at 07.02.2009 25
  26. 26. Beispiel: db/migrate/2009..lectures.rb „Normale Tabellen“ Inhalt kann selber editieren werden Automatisch erstellte Felder created_at updated_at Wieder „gratis“ Funktionalität ohne Mehrarbeit Hermann Stern www.derstern.at 07.02.2009 26
  27. 27. Beispiel: Default Routen (1/2) Pfade durch die Applikation Neue Startseite setzen public/index.html löschen config/routes.rb editieren map.root :controller => quot;homequot; map.connect ':controller/:action/:id' map.connect ':controller/:action/:id.:format‚ Hermann Stern www.derstern.at 07.02.2009 27
  28. 28. Beispiel: Default Routen (2/2) views/home/index.html.erb anpassen <h1>BarCamp Anmeldungen</h1> <p> Link zu den Sessions </p> <%= link_to quot;Lecturesquot;, lectures_path %> (lectures_path wurde automatisch erstellt) Hermann Stern www.derstern.at 07.02.2009 28
  29. 29. Beispiel: Screenshots (1/3) http://localhost:3001/ Hermann Stern www.derstern.at 07.02.2009 29
  30. 30. Beispiel: Screenshots (2/3) Hermann Stern www.derstern.at 07.02.2009 30
  31. 31. Beispiel: Screenshots (3/3) Hermann Stern www.derstern.at 07.02.2009 31
  32. 32. Beispiel: So gehts weiter… Anpassen der HTML Templates Registration durch Scaffold hinzufügen Tabellen verbinden belongs to, has many, etc class Lecture < ActiveRecord::Base has_many :Registrations end Weitere Methoden verfügbar @registrations = Lecture.find_all Hermann Stern www.derstern.at 07.02.2009 32
  33. 33. Und jetzt? http://en.wikibooks.org/wiki/Ruby_on_Rails http://en.wikibooks.org/wiki/Ruby http://openbook.galileocomputing.de/ruby_on_rails/ Ausprobieren, Learning by Doing Kreativ sein http://www.peepalot.com Online stellen Wenige Provider bieten WEBrick oder Mongrel Es gibt auch ein Apache Modul für RoR (mod_rails) Hermann Stern www.derstern.at 07.02.2009 33
  34. 34. Hermann Stern www.derstern.at 07.02.2009 34

×