Ruby On Rails
 A Web Application Framework




              1
Überblick
Wiederholgung Ruby
Einführung in Rails
Installation und Einrichtung
“Hello World”
Real World Example
Weitere Fea...
Wiederholung Ruby


        3
Ruby?
Ruby ist eine vollständig
objektorientierte
Skriptsprache

Das Beste von Perl und
Python

Public release 1995 durch
...
Wichtigste Eigenschaften

 Interpretierte Skriptsprache
 Aktuell ist Ruby 1.8.2
 Komplett Objekt-Orientiert
 Dynamische Ty...
5.times do puts “ruby ist cool”.upcase end



Output:
RUBY IST   COOL
RUBY IST   COOL
RUBY IST   COOL
RUBY IST   COOL
RUBY...
Grundregeln
Kein Semikolon am Ende der Zeile (bei
einer Anweisung pro Zeile)
Keine geschweiften Klammern zur
Deklaration v...
a=9
b=1
c=a+b
print c ; c = “Hi”; print c
d = c.length + c.index(”i”)
c = -99.abs
ein_string = String.new(”HALLO”)
auch_ei...
Funktionen/Methoden
 Einleitung mit
def funktions_name(argument)
....
end
 implizites return des letzten
 Ausdruckes (wie ...
def my_func
 puts “abc”
 99
end
def my_func2(a, b)
 return a+b
end
def a; “a”; end

ergebnis = my_func(1,2)
a()
          ...
class Person
  @name                  #Instanz-var
  @alter                  #Instanz-var
  @@anzahl_auf_der_welt #Klassen...
class Person
  def Person.how_many
    @@anzahl_auf_der_welt
  end
end

anzahl = Person.how_many




                   12
Iteratoren
Iteratoren sind Funktionen, die Blocks
repetitiv aufrufen
Finden dort Einsatz, wo andere
Sprachen normalerweise...
5.times { puts “Hi”}

a = [1, 2]
a.each do |the_one|
  print the_one
end

[”H”, “A”, “L”].collect {|x| x.succ} --> [”I”, “...
begin

 funktion_die_schief_laufen_kann(1,2,”aaa”)

rescue StandardError

 puts “Fehler aufgetreten”

ensure

 puts “wird ...
Ruby on Rails
    Einführung




        16
Ruby on Rails

Framework für Web-Anwendungen
Model-View-Controller Ansatz
Nur eine Konfigurationsdatei:
Datenbank Zugangsd...
Model-View-Controller
Design-Pattern für Programme mit
Interaktion mit dem Benutzer
KLassen werden in drei Gruppen
eingete...
Model

Klasse, die das Business-Objekt abbildet
mit allen seinen Funktionalitäten
BSP:
Klasse Benutzer
Klasse Buch

      ...
View
Eigentliche Darstellung für den User
Keine Funktionalität, nur Design
+Anzeige
BSP:
 Template, dass alle Bücher im Sy...
Controller
Verbindung zwischen Model und View
Lädt benötigte Daten aus dem Model
und füttert sie in den View
Prozess-Logik...
Rails-Architektur




                    22
Active Record

Model
Verbindet Ruby-Klasse mit Daten aus
der Datenbank
Bereitstellung von Funktionen zur
Manipulation der ...
Action Controller

Controller
Bietet die eigentlichen Funktionalitäten
an, mit denen der Benutzer interagiert
Lädt den pas...
Action View

View
Ruby Template
HTML mit ERb-tags
Das was der Benutzer zu sehen
bekommt

                                25
Installation und
  Einrichtung



       26
Was brauchen wir?

Ruby
rubygems zum Installieren von gems
Rails & co rubygems
Datenbank
Webserver

                      ...
Ruby

 Windows Binary Installer:
http://rubyforge.org/projects/
rubyinstaller/
 UNIX:
RPM, DEB, Sourcen, Port,...

       ...
Rubygems
 Paketverwaltung für Bibliotheken (vgl.
 CPAN und PEAR)
 Verwaltung von Paketen
gem install NAME
gem update
u.s.w...
Rails


 Unser Eigentliches Framework
 Installation über rubygems
gem install rails



                                30
Datenbank
Rails unterstützt folgende
Datenbanken:
MySQL
PostgreSQL
SQLite
Sybase
Oracle
MSSQL
                             31
Webserver
 Rails kommt mit eigenem Webserver,
 WEBrick
Ansonsten:
 CGI --> Jeder Webserver mit CGI
 mod_ruby + Apache
 FCG...
Hello World



     33
Erste Schritte

Daten-Struktur
Konfiguration und Environments
Kontrollfluß
“Hello World” ausgeben


                      ...
Applikation erstellen
# rails myapplication

# ls myapplication/




                        35
Datenbank Verbindung
config/database.yml




                     36
Umgebungen
Development
  Standard
  Loggin an, caching aus, debug an
Production
  Loggin an, caching an, debug aus
Test
  ...
Generator

Models,Views und Controller können per
Hand erstellt werden
Generator hilft aus:
ruby script/generator model Bu...
Scaffold Generator
Generiert Standard Views und
Controller für Model:
 New
 Edit
 List
 Destroy
Nützlich für den Anfang   ...
Controller generieren
# ruby script/generate controller sagwas




                    40
Action einfügen
# vi app/controller/sagwas_controler.rb




                    41
Webserver starten
# ruby script/server




                       42
Browser starten




http://server/controller/action/[argumente]




                     43
Real World Example
     OnlineShop in Rails




             44
Funktionalität

Admin: Einstellen und Bearbeiten von
Artikeln
Store: Ansehen und Warenkorb
Admin: Bestellungen bearbeiten
...
Vorgehen - Admin


Erstellen von DB-Tabellen
Generieren von Model+Controller
Validieren eines gültigen Artikels



       ...
# rails depot

# cd depot

# vi config/database.yml

# ruby script/generate scaffold Product Admin




                    47
Validation

 ActiveRecord bietet
 Validierungsfunktionen an, die vor
 dem Speichern aufgerufen werden:
validate_presence_o...
Validation




    49
Anpassen der
Templates
Templates sind RHTML, d.h HTML +
Ruby code:
<% normaler rubycode %>
<%= ergebnis wird ausgegeben %>...
Weitere Features



       51
The Web, V2.0

Rails integriert JavaScript Bibliotheken,
die folgenes ermöglichen:
 Ajax
 Effects


                      ...
The Web, V2.0 - AJAX




                       53
The Web, V2.0 - AJAX




                       54
The Web, V2.0



       DEMO


                55
Remote Debugging


Über ruby script/console bekommt man
eine IRB session zur Rails-Umgebung
Das geht auch remote!



     ...
Sicherheit

 Schutz gegen CSS/XSS mit
 <%h .... %>
 Schutz gegen SQLInjection mit
User.find(:all, conditions =>
        [“...
Caching

Rails bietet von sich aus drei Caching
Einstellung
Page caching
Action caching
Fragment caching

                ...
ActionMail


Senden und Empfangen von Mail in
RailsApplikationen
Senden über Templates



                                ...
Ressourcen



    60
Mailing Listen


ruby-talk@ruby-lang.org
rails@lists.rubyonrails.com




                              61
Webseiten


www.rubyonrails.com
poignantguide.net/ruby
mir.aculo.us / script.aculo.us



                                 62
Bücher

Programming Ruby




Agile Web Development with
Rails

                             63
Fin
Fragen?




  64
Nächste SlideShare
Wird geladen in …5
×

An Introduction to Ruby On Rails

4.879 Aufrufe

Veröffentlicht am

An Introduction to the Web framework Ruby on Rails by Jonathan Weiss. Presented for Juniter in 2005.

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
4.879
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
45
Aktionen
Geteilt
0
Downloads
136
Kommentare
0
Gefällt mir
2
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

An Introduction to Ruby On Rails

  1. 1. Ruby On Rails A Web Application Framework 1
  2. 2. Überblick Wiederholgung Ruby Einführung in Rails Installation und Einrichtung “Hello World” Real World Example Weitere Features Ressourcen 2
  3. 3. Wiederholung Ruby 3
  4. 4. Ruby? Ruby ist eine vollständig objektorientierte Skriptsprache Das Beste von Perl und Python Public release 1995 durch Yukihiro Matsumoto, a.k.a “Matz” 4
  5. 5. Wichtigste Eigenschaften Interpretierte Skriptsprache Aktuell ist Ruby 1.8.2 Komplett Objekt-Orientiert Dynamische Typbindung Verfügbar über GPL oder eigene Lizenz 5
  6. 6. 5.times do puts “ruby ist cool”.upcase end Output: RUBY IST COOL RUBY IST COOL RUBY IST COOL RUBY IST COOL RUBY IST COOL 6
  7. 7. Grundregeln Kein Semikolon am Ende der Zeile (bei einer Anweisung pro Zeile) Keine geschweiften Klammern zur Deklaration vom Blöcken, sondern “xxxx......end” Keine Deklaration von Variablen! () können bei Methoden weggelassen werden 7
  8. 8. a=9 b=1 c=a+b print c ; c = “Hi”; print c d = c.length + c.index(”i”) c = -99.abs ein_string = String.new(”HALLO”) auch_ein_string = ‘a’ + “bcdefg #{c}” 8
  9. 9. Funktionen/Methoden Einleitung mit def funktions_name(argument) .... end implizites return des letzten Ausdruckes (wie überall in Ruby) 9
  10. 10. def my_func puts “abc” 99 end def my_func2(a, b) return a+b end def a; “a”; end ergebnis = my_func(1,2) a() 10
  11. 11. class Person @name #Instanz-var @alter #Instanz-var @@anzahl_auf_der_welt #Klassen-var MAX_ALTER = 100 #Konstante def check_alter(alter) #Instanz-meth alter < Person::MAX_ALTER end end a = Person.new if a.check_alter(90) puts “jung genug” end 11
  12. 12. class Person def Person.how_many @@anzahl_auf_der_welt end end anzahl = Person.how_many 12
  13. 13. Iteratoren Iteratoren sind Funktionen, die Blocks repetitiv aufrufen Finden dort Einsatz, wo andere Sprachen normalerweise Schleifen nutzen würden Intuitiv zu benutzten 13
  14. 14. 5.times { puts “Hi”} a = [1, 2] a.each do |the_one| print the_one end [”H”, “A”, “L”].collect {|x| x.succ} --> [”I”, “B”, “M”] [1, 2, 3, 5, 7, 9].find {|v| v*v > 30} --> 7 14
  15. 15. begin funktion_die_schief_laufen_kann(1,2,”aaa”) rescue StandardError puts “Fehler aufgetreten” ensure puts “wird immer ausgeführt” end 15
  16. 16. Ruby on Rails Einführung 16
  17. 17. Ruby on Rails Framework für Web-Anwendungen Model-View-Controller Ansatz Nur eine Konfigurationsdatei: Datenbank Zugangsdaten Convention over configuration 17
  18. 18. Model-View-Controller Design-Pattern für Programme mit Interaktion mit dem Benutzer KLassen werden in drei Gruppen eingeteilt, die sich auf ihre jeweillige Aufgabe spezialisieren Vorteil: Entkopplung und somit Wiederverwendbarkeit 18
  19. 19. Model Klasse, die das Business-Objekt abbildet mit allen seinen Funktionalitäten BSP: Klasse Benutzer Klasse Buch 19
  20. 20. View Eigentliche Darstellung für den User Keine Funktionalität, nur Design +Anzeige BSP: Template, dass alle Bücher im System anzeigt Template, dass alle Bücher eines Benutzers anzeigt 20
  21. 21. Controller Verbindung zwischen Model und View Lädt benötigte Daten aus dem Model und füttert sie in den View Prozess-Logik BSP: Lade alle Bücher im System und gebe sie dem richtigem Template 21
  22. 22. Rails-Architektur 22
  23. 23. Active Record Model Verbindet Ruby-Klasse mit Daten aus der Datenbank Bereitstellung von Funktionen zur Manipulation der Daten in der DB 23
  24. 24. Action Controller Controller Bietet die eigentlichen Funktionalitäten an, mit denen der Benutzer interagiert Lädt den passenden Action View 24
  25. 25. Action View View Ruby Template HTML mit ERb-tags Das was der Benutzer zu sehen bekommt 25
  26. 26. Installation und Einrichtung 26
  27. 27. Was brauchen wir? Ruby rubygems zum Installieren von gems Rails & co rubygems Datenbank Webserver 27
  28. 28. Ruby Windows Binary Installer: http://rubyforge.org/projects/ rubyinstaller/ UNIX: RPM, DEB, Sourcen, Port,... 28
  29. 29. Rubygems Paketverwaltung für Bibliotheken (vgl. CPAN und PEAR) Verwaltung von Paketen gem install NAME gem update u.s.w.... 29
  30. 30. Rails Unser Eigentliches Framework Installation über rubygems gem install rails 30
  31. 31. Datenbank Rails unterstützt folgende Datenbanken: MySQL PostgreSQL SQLite Sybase Oracle MSSQL 31
  32. 32. Webserver Rails kommt mit eigenem Webserver, WEBrick Ansonsten: CGI --> Jeder Webserver mit CGI mod_ruby + Apache FCGI für Apache oder Lighttpd 32
  33. 33. Hello World 33
  34. 34. Erste Schritte Daten-Struktur Konfiguration und Environments Kontrollfluß “Hello World” ausgeben 34
  35. 35. Applikation erstellen # rails myapplication # ls myapplication/ 35
  36. 36. Datenbank Verbindung config/database.yml 36
  37. 37. Umgebungen Development Standard Loggin an, caching aus, debug an Production Loggin an, caching an, debug aus Test alles aus 37
  38. 38. Generator Models,Views und Controller können per Hand erstellt werden Generator hilft aus: ruby script/generator model Buch ruby script/generator controller Laden 38
  39. 39. Scaffold Generator Generiert Standard Views und Controller für Model: New Edit List Destroy Nützlich für den Anfang 39
  40. 40. Controller generieren # ruby script/generate controller sagwas 40
  41. 41. Action einfügen # vi app/controller/sagwas_controler.rb 41
  42. 42. Webserver starten # ruby script/server 42
  43. 43. Browser starten http://server/controller/action/[argumente] 43
  44. 44. Real World Example OnlineShop in Rails 44
  45. 45. Funktionalität Admin: Einstellen und Bearbeiten von Artikeln Store: Ansehen und Warenkorb Admin: Bestellungen bearbeiten 45
  46. 46. Vorgehen - Admin Erstellen von DB-Tabellen Generieren von Model+Controller Validieren eines gültigen Artikels 46
  47. 47. # rails depot # cd depot # vi config/database.yml # ruby script/generate scaffold Product Admin 47
  48. 48. Validation ActiveRecord bietet Validierungsfunktionen an, die vor dem Speichern aufgerufen werden: validate_presence_of :name, :vorname 48
  49. 49. Validation 49
  50. 50. Anpassen der Templates Templates sind RHTML, d.h HTML + Ruby code: <% normaler rubycode %> <%= ergebnis wird ausgegeben %> <%=h ergebnis wird HTML escaped %> 50
  51. 51. Weitere Features 51
  52. 52. The Web, V2.0 Rails integriert JavaScript Bibliotheken, die folgenes ermöglichen: Ajax Effects 52
  53. 53. The Web, V2.0 - AJAX 53
  54. 54. The Web, V2.0 - AJAX 54
  55. 55. The Web, V2.0 DEMO 55
  56. 56. Remote Debugging Über ruby script/console bekommt man eine IRB session zur Rails-Umgebung Das geht auch remote! 56
  57. 57. Sicherheit Schutz gegen CSS/XSS mit <%h .... %> Schutz gegen SQLInjection mit User.find(:all, conditions => [“name=?”, #{params[:name]}] 57
  58. 58. Caching Rails bietet von sich aus drei Caching Einstellung Page caching Action caching Fragment caching 58
  59. 59. ActionMail Senden und Empfangen von Mail in RailsApplikationen Senden über Templates 59
  60. 60. Ressourcen 60
  61. 61. Mailing Listen ruby-talk@ruby-lang.org rails@lists.rubyonrails.com 61
  62. 62. Webseiten www.rubyonrails.com poignantguide.net/ruby mir.aculo.us / script.aculo.us 62
  63. 63. Bücher Programming Ruby Agile Web Development with Rails 63
  64. 64. Fin Fragen? 64

×