Your SlideShare is downloading. ×

An Introduction to Ruby On Rails

4,394

Published on

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

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

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

No Downloads
Views
Total Views
4,394
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
133
Comments
0
Likes
2
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. Ruby On Rails A Web Application Framework 1
  • 2. Überblick Wiederholgung Ruby Einführung in Rails Installation und Einrichtung “Hello World” Real World Example Weitere Features Ressourcen 2
  • 3. Wiederholung Ruby 3
  • 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. Wichtigste Eigenschaften Interpretierte Skriptsprache Aktuell ist Ruby 1.8.2 Komplett Objekt-Orientiert Dynamische Typbindung Verfügbar über GPL oder eigene Lizenz 5
  • 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. 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. 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. Funktionen/Methoden Einleitung mit def funktions_name(argument) .... end implizites return des letzten Ausdruckes (wie überall in Ruby) 9
  • 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. 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. class Person def Person.how_many @@anzahl_auf_der_welt end end anzahl = Person.how_many 12
  • 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. 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. begin funktion_die_schief_laufen_kann(1,2,”aaa”) rescue StandardError puts “Fehler aufgetreten” ensure puts “wird immer ausgeführt” end 15
  • 16. Ruby on Rails Einführung 16
  • 17. Ruby on Rails Framework für Web-Anwendungen Model-View-Controller Ansatz Nur eine Konfigurationsdatei: Datenbank Zugangsdaten Convention over configuration 17
  • 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. Model Klasse, die das Business-Objekt abbildet mit allen seinen Funktionalitäten BSP: Klasse Benutzer Klasse Buch 19
  • 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. 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. Rails-Architektur 22
  • 23. Active Record Model Verbindet Ruby-Klasse mit Daten aus der Datenbank Bereitstellung von Funktionen zur Manipulation der Daten in der DB 23
  • 24. Action Controller Controller Bietet die eigentlichen Funktionalitäten an, mit denen der Benutzer interagiert Lädt den passenden Action View 24
  • 25. Action View View Ruby Template HTML mit ERb-tags Das was der Benutzer zu sehen bekommt 25
  • 26. Installation und Einrichtung 26
  • 27. Was brauchen wir? Ruby rubygems zum Installieren von gems Rails & co rubygems Datenbank Webserver 27
  • 28. Ruby Windows Binary Installer: http://rubyforge.org/projects/ rubyinstaller/ UNIX: RPM, DEB, Sourcen, Port,... 28
  • 29. Rubygems Paketverwaltung für Bibliotheken (vgl. CPAN und PEAR) Verwaltung von Paketen gem install NAME gem update u.s.w.... 29
  • 30. Rails Unser Eigentliches Framework Installation über rubygems gem install rails 30
  • 31. Datenbank Rails unterstützt folgende Datenbanken: MySQL PostgreSQL SQLite Sybase Oracle MSSQL 31
  • 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. Hello World 33
  • 34. Erste Schritte Daten-Struktur Konfiguration und Environments Kontrollfluß “Hello World” ausgeben 34
  • 35. Applikation erstellen # rails myapplication # ls myapplication/ 35
  • 36. Datenbank Verbindung config/database.yml 36
  • 37. Umgebungen Development Standard Loggin an, caching aus, debug an Production Loggin an, caching an, debug aus Test alles aus 37
  • 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. Scaffold Generator Generiert Standard Views und Controller für Model: New Edit List Destroy Nützlich für den Anfang 39
  • 40. Controller generieren # ruby script/generate controller sagwas 40
  • 41. Action einfügen # vi app/controller/sagwas_controler.rb 41
  • 42. Webserver starten # ruby script/server 42
  • 43. Browser starten http://server/controller/action/[argumente] 43
  • 44. Real World Example OnlineShop in Rails 44
  • 45. Funktionalität Admin: Einstellen und Bearbeiten von Artikeln Store: Ansehen und Warenkorb Admin: Bestellungen bearbeiten 45
  • 46. Vorgehen - Admin Erstellen von DB-Tabellen Generieren von Model+Controller Validieren eines gültigen Artikels 46
  • 47. # rails depot # cd depot # vi config/database.yml # ruby script/generate scaffold Product Admin 47
  • 48. Validation ActiveRecord bietet Validierungsfunktionen an, die vor dem Speichern aufgerufen werden: validate_presence_of :name, :vorname 48
  • 49. Validation 49
  • 50. Anpassen der Templates Templates sind RHTML, d.h HTML + Ruby code: <% normaler rubycode %> <%= ergebnis wird ausgegeben %> <%=h ergebnis wird HTML escaped %> 50
  • 51. Weitere Features 51
  • 52. The Web, V2.0 Rails integriert JavaScript Bibliotheken, die folgenes ermöglichen: Ajax Effects 52
  • 53. The Web, V2.0 - AJAX 53
  • 54. The Web, V2.0 - AJAX 54
  • 55. The Web, V2.0 DEMO 55
  • 56. Remote Debugging Über ruby script/console bekommt man eine IRB session zur Rails-Umgebung Das geht auch remote! 56
  • 57. Sicherheit Schutz gegen CSS/XSS mit <%h .... %> Schutz gegen SQLInjection mit User.find(:all, conditions => [“name=?”, #{params[:name]}] 57
  • 58. Caching Rails bietet von sich aus drei Caching Einstellung Page caching Action caching Fragment caching 58
  • 59. ActionMail Senden und Empfangen von Mail in RailsApplikationen Senden über Templates 59
  • 60. Ressourcen 60
  • 61. Mailing Listen ruby-talk@ruby-lang.org rails@lists.rubyonrails.com 61
  • 62. Webseiten www.rubyonrails.com poignantguide.net/ruby mir.aculo.us / script.aculo.us 62
  • 63. Bücher Programming Ruby Agile Web Development with Rails 63
  • 64. Fin Fragen? 64

×