SlideShare ist ein Scribd-Unternehmen logo
Ruby on Rails
                                              Dozent
                                               Dipl.-Inf. (FH)
                                         Julian Fischer




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        1
5. Rails Controller



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        2
Callbacks



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        3
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        4
5. Rails Controller
• before_filter - Controller




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            4
5. Rails Controller
• before_filter - Controller
• after_create - ActiveRecord Modell




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            4
Hash-Options



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        5
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        6
5. Rails Controller
• render :partial => „Test“,
  :collection => @my_array




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            6
ActionController



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        7
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        8
5. Rails Controller
• MyController




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            8
5. Rails Controller
• MyController
 • Endet mit Controller




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            8
5. Rails Controller
• MyController
 • Endet mit Controller
 • Camelcase Schreibweise



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            8
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        9
5. Rails Controller
• Methoden des Controllers per Default
  nach aussen verfügbar




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
5. Rails Controller
• Methoden des Controllers per Default
  nach aussen verfügbar
• Controller Methoden = Actions



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
5. Rails Controller
• Methoden des Controllers per Default
  nach aussen verfügbar
• Controller Methoden = Actions
• Actions korrespondieren mit View-Namen


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
5. Rails Controller
• Methoden des Controllers per Default
  nach aussen verfügbar
• Controller Methoden = Actions
• Actions korrespondieren mit View-Namen
• Beispiel!

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            9
Application Controller



  Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         10
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       11
5. Rails Controller
• Früher:
  app/controllers/application_controller.rb




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           11
5. Rails Controller
• Früher:
  app/controllers/application_controller.rb
• dann:
  app/controllers/application.rb




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           11
5. Rails Controller
• Früher:
  app/controllers/application_controller.rb
• dann:
  app/controllers/application.rb
• Heute wieder:
  app/controllers/application_controller.rb



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           11
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       12
5. Rails Controller
• enthält Methoden, die in allen Controllern
  verfügbar sein sollen




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           12
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       13
5. Rails Controller
• Zusammenhang: Instanzvariablen - Views




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
5. Rails Controller
• Zusammenhang: Instanzvariablen - Views
• Wiederholung:
  Lokale Variablen vs. Instanzvariablen




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           13
Params Hash



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       14
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       15
5. Rails Controller
• Parameter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller
• Parameter
 • params - Objekt




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller
• Parameter
 • params - Objekt
   • Zusammenhang mit routes.rb



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller
• Parameter
 • params - Objekt
   • Zusammenhang mit routes.rb
   • /mycontroller/myaction/1


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller
• Parameter
 • params - Objekt
   • Zusammenhang mit routes.rb
   • /mycontroller/myaction/1
   • /mycontroller/myaction/1-test

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller
• Parameter
 • params - Objekt
   • Zusammenhang mit routes.rb
   • /mycontroller/myaction/1
   • /mycontroller/myaction/1-test
   • /mycontroller/myaction/1test%20test
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           15
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       16
5. Rails Controller
• Parameter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           16
5. Rails Controller
• Parameter
 • params - Objekt




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           16
5. Rails Controller
• Parameter
 • params - Objekt
   • /mycontroller/myaction?obst=karotte



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           16
Render



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       17
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       18
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Rendern einer bestimmten Action



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Rendern einer bestimmten Action
  • if param[:obst] == „Banane“ then
           render :action => :myaction
          end



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           18
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       19
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Rendern eines bestimmten Templates



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Rendern eines bestimmten Templates
  • render ‚common/mytemplate‘


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           19
Redirects



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       20
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       21
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to
  • redirect_to ‚http://www.google.de‘


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to
  • redirect_to ‚http://www.google.de‘
  • redirect_to ‚/controller/action‘
          (schlecht)


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           21
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       22
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           22
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           22
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to
  • Bennante-Route


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           22
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to
  • Bennante-Route
        •       map.machine 'maschine/:action/:id', :controller =>
                'machine'
                (in routes.rb)




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           22
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • Redirect_to
  • Bennante-Route
        •       map.machine 'maschine/:action/:id', :controller =>
                'machine'
                (in routes.rb)

        •       redirect_to machine_url(:action => :test2)
                (in einem Controller)




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           22
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       23
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           23
5. Rails Controller
• Bedingter Ablauf / Abweichung vom
  Default-Flow
 • if param[:obst] == „Banane“ then
     render :action => :myaction
    end




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           23
Filter



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       24
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       25
5. Rails Controller
• Filter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           25
5. Rails Controller
• Filter
 • Auführung von Code vor- oder nach
    einer Action




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           25
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       26
5. Rails Controller
• Filter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           26
5. Rails Controller
• Filter
  •   http://api.rubyonrails.org/classes/
      ActionController/Filters/
      ClassMethods.html#M000312




      Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                             26
5. Rails Controller
• Filter
  •   http://api.rubyonrails.org/classes/
      ActionController/Filters/
      ClassMethods.html#M000312

  • Auführung von Code vor- oder nach
      einer Action



      Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                             26
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       27
5. Rails Controller
• Filter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           27
5. Rails Controller
• Filter
 • Filter-Methoden haben Zugriff auf




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           27
5. Rails Controller
• Filter
 • Filter-Methoden haben Zugriff auf
    • Request-Objekt (später)



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           27
5. Rails Controller
• Filter
 • Filter-Methoden haben Zugriff auf
    • Request-Objekt (später)
    • Response-Objekt (später)


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           27
5. Rails Controller
• Filter
 • Filter-Methoden haben Zugriff auf
    • Request-Objekt (später)
    • Response-Objekt (später)
    • Instanz-Variablen (Action, Filter, ...)

     Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            27
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       28
5. Rails Controller
• Filter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           28
5. Rails Controller
• Filter
 • Bedingte Auführung von Filtern




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           28
5. Rails Controller
• Filter
 • Bedingte Auführung von Filtern
    • :only - Filtert nur die angegebenen
          Methoden




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           28
5. Rails Controller
• Filter
 • Bedingte Auführung von Filtern
    • :only - Filtert nur die angegebenen
          Methoden
    • :except - Filtert alle außer den
          angebenen Methoden


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           28
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       29
5. Rails Controller
• Filter




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           29
5. Rails Controller
• Filter
 • Beispiel!




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           29
5. Rails Controller
• Filter
 • Beispiel!
 • Mehr Informationen über Filter:
    http://api.rubyonrails.org/classes/
    ActionController/Filters/
    ClassMethods.html#M000312


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           29
Request - Objekt



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       30
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       31
5. Rails Controller
• request-Variable enthält Informationen des
  HTTP-Requests wie:




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           31
5. Rails Controller
• request-Variable enthält Informationen des
  HTTP-Requests wie:
 • Protocol:



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           31
5. Rails Controller
• request-Variable enthält Informationen des
  HTTP-Requests wie:
 • Protocol:
  • http


    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           31
5. Rails Controller
• request-Variable enthält Informationen des
  HTTP-Requests wie:
 • Protocol:
  • http
  • https

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           31
5. Rails Controller
• request-Variable enthält Informationen des
  HTTP-Requests wie:
 • Protocol:
  • http
  • https
 • Port
    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           31
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       32
5. Rails Controller
• request-Variable enthält u.a. Informationen
  wie:




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           32
5. Rails Controller
• request-Variable enthält u.a. Informationen
  wie:
  • xml_http_request? - Liegt ein AJAX-
    Request vor?




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           32
5. Rails Controller
• request-Variable enthält u.a. Informationen
  wie:
  • xml_http_request? - Liegt ein AJAX-
    Request vor?
    • xhr?

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           32
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       33
5. Rails Controller
• Mehr Informationen über das Request-
  Objekt:

  http://api.rubyonrails.org/classes/ActionController/
  AbstractRequest.html




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           33
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       34
5. Rails Controller
• response-Variable enthält Infos zur HTTP-
  Antwort, die an den Client gesendet wird




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           34
Session-Objekt



Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       35
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       36
5. Rails Controller
• Session-Hash
  session[:my_key] = „Mein Wert“




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           36
5. Rails Controller
• Session-Hash
  session[:my_key] = „Mein Wert“
• Verfügbar während einer User-Session



    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           36
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       37
5. Rails Controller
• Rails verwendet Cookie-basierte Sessions




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           37
5. Rails Controller
• Rails verwendet Cookie-basierte Sessions
• Rails speichert, seit Version 2.0, Session-
  Informationen verschlüsselt im Cookie
     Max. 4 KB / Session




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           37
5. Rails Controller
• Rails verwendet Cookie-basierte Sessions
• Rails speichert, seit Version 2.0, Session-
  Informationen verschlüsselt im Cookie
     Max. 4 KB / Session

• Kann auf DB-, File-, oder Memcache-Store
  umgestellt werden
    Keine Größenbeschränkung

    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           37
5. Rails Controller




Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                       38
5. Rails Controller
• Mehr Informationen über Sessions:
  http://api.rubyonrails.org/classes/ActionController/
  Base.html




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           38
A.1 Literatur und Links



  Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                         39
A.1 Literatur und Links




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        40
A.1 Literatur und Links
• Action-Controller
  http://api.rubyonrails.org/classes/
  ActionController/Base.html




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           40
A.1 Literatur und Links
• Action-Controller
  http://api.rubyonrails.org/classes/
  ActionController/Base.html
• Ruby - API
  http://www.ruby-doc.org/core/




    Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                           40
A.1 Literatur und Links
• Action-Controller
   http://api.rubyonrails.org/classes/
   ActionController/Base.html
• Ruby - API
   http://www.ruby-doc.org/core/
• Ruby - API - Filter
  http://api.rubyonrails.org/classes/ActionController/
   Filters/ClassMethods.html#M000312

     Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            40
A.1 Literatur und Links




 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                        41
A.1 Literatur und Links
• Ruby - API - Sessions
  http://api.rubyonrails.org/classes/ActionController/
   Base.html -> Sessions




     Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            41
A.1 Literatur und Links
• Ruby - API - Sessions
  http://api.rubyonrails.org/classes/ActionController/
   Base.html -> Sessions

• Apidock.com - Eine alternative Rails/Ruby/
   RSpec Dokumentation
   http://www.apidock.com



     Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de

                                                            41

Weitere ähnliche Inhalte

KEY
Ruby On Rails Vorlesung 1 Rails Überblick
KEY
Ruby on rails vorlesung 2 Ruby
KEY
Ruby on rails vorlesung 4 Rails Views
KEY
Julian Fischer Ruby On Rails
KEY
Ruby on rails vorlesung 3 Mehr Ruby
KEY
Mehrserver Lösungen
PPTX
Kanban - Classes of Service
PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing
Ruby On Rails Vorlesung 1 Rails Überblick
Ruby on rails vorlesung 2 Ruby
Ruby on rails vorlesung 4 Rails Views
Julian Fischer Ruby On Rails
Ruby on rails vorlesung 3 Mehr Ruby
Mehrserver Lösungen
Kanban - Classes of Service
2024 Trend Updates: What Really Works In SEO & Content Marketing
Anzeige

Ruby on Rails Vorlesung 5 Rails Controller

  • 1. Ruby on Rails Dozent Dipl.-Inf. (FH) Julian Fischer Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 1
  • 2. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 2
  • 3. Callbacks Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 3
  • 4. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 5. 5. Rails Controller • before_filter - Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 6. 5. Rails Controller • before_filter - Controller • after_create - ActiveRecord Modell Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 4
  • 7. Hash-Options Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 5
  • 8. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 6
  • 9. 5. Rails Controller • render :partial => „Test“, :collection => @my_array Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 6
  • 10. ActionController Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 7
  • 11. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  • 12. 5. Rails Controller • MyController Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  • 13. 5. Rails Controller • MyController • Endet mit Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  • 14. 5. Rails Controller • MyController • Endet mit Controller • Camelcase Schreibweise Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 8
  • 15. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 16. 5. Rails Controller • Methoden des Controllers per Default nach aussen verfügbar Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 17. 5. Rails Controller • Methoden des Controllers per Default nach aussen verfügbar • Controller Methoden = Actions Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 18. 5. Rails Controller • Methoden des Controllers per Default nach aussen verfügbar • Controller Methoden = Actions • Actions korrespondieren mit View-Namen Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 19. 5. Rails Controller • Methoden des Controllers per Default nach aussen verfügbar • Controller Methoden = Actions • Actions korrespondieren mit View-Namen • Beispiel! Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 9
  • 20. Application Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 10
  • 21. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 22. 5. Rails Controller • Früher: app/controllers/application_controller.rb Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 23. 5. Rails Controller • Früher: app/controllers/application_controller.rb • dann: app/controllers/application.rb Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 24. 5. Rails Controller • Früher: app/controllers/application_controller.rb • dann: app/controllers/application.rb • Heute wieder: app/controllers/application_controller.rb Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 11
  • 25. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 26. 5. Rails Controller • enthält Methoden, die in allen Controllern verfügbar sein sollen Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 12
  • 27. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 28. 5. Rails Controller • Zusammenhang: Instanzvariablen - Views Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 29. 5. Rails Controller • Zusammenhang: Instanzvariablen - Views • Wiederholung: Lokale Variablen vs. Instanzvariablen Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 13
  • 30. Params Hash Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 14
  • 31. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 32. 5. Rails Controller • Parameter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 33. 5. Rails Controller • Parameter • params - Objekt Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 34. 5. Rails Controller • Parameter • params - Objekt • Zusammenhang mit routes.rb Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 35. 5. Rails Controller • Parameter • params - Objekt • Zusammenhang mit routes.rb • /mycontroller/myaction/1 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 36. 5. Rails Controller • Parameter • params - Objekt • Zusammenhang mit routes.rb • /mycontroller/myaction/1 • /mycontroller/myaction/1-test Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 37. 5. Rails Controller • Parameter • params - Objekt • Zusammenhang mit routes.rb • /mycontroller/myaction/1 • /mycontroller/myaction/1-test • /mycontroller/myaction/1test%20test Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 15
  • 38. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 39. 5. Rails Controller • Parameter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 40. 5. Rails Controller • Parameter • params - Objekt Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 41. 5. Rails Controller • Parameter • params - Objekt • /mycontroller/myaction?obst=karotte Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 16
  • 42. Render Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 17
  • 43. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 44. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 45. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Rendern einer bestimmten Action Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 46. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Rendern einer bestimmten Action • if param[:obst] == „Banane“ then render :action => :myaction end Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 18
  • 47. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 48. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 49. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Rendern eines bestimmten Templates Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 50. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Rendern eines bestimmten Templates • render ‚common/mytemplate‘ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 19
  • 51. Redirects Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 20
  • 52. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 53. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 54. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 55. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to • redirect_to ‚http://www.google.de‘ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 56. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to • redirect_to ‚http://www.google.de‘ • redirect_to ‚/controller/action‘ (schlecht) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 21
  • 57. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 58. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 59. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 60. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to • Bennante-Route Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 61. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to • Bennante-Route • map.machine 'maschine/:action/:id', :controller => 'machine' (in routes.rb) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 62. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • Redirect_to • Bennante-Route • map.machine 'maschine/:action/:id', :controller => 'machine' (in routes.rb) • redirect_to machine_url(:action => :test2) (in einem Controller) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 22
  • 63. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 23
  • 64. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 23
  • 65. 5. Rails Controller • Bedingter Ablauf / Abweichung vom Default-Flow • if param[:obst] == „Banane“ then render :action => :myaction end Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 23
  • 66. Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 24
  • 67. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 25
  • 68. 5. Rails Controller • Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 25
  • 69. 5. Rails Controller • Filter • Auführung von Code vor- oder nach einer Action Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 25
  • 70. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 26
  • 71. 5. Rails Controller • Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 26
  • 72. 5. Rails Controller • Filter • http://api.rubyonrails.org/classes/ ActionController/Filters/ ClassMethods.html#M000312 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 26
  • 73. 5. Rails Controller • Filter • http://api.rubyonrails.org/classes/ ActionController/Filters/ ClassMethods.html#M000312 • Auführung von Code vor- oder nach einer Action Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 26
  • 74. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 75. 5. Rails Controller • Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 76. 5. Rails Controller • Filter • Filter-Methoden haben Zugriff auf Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 77. 5. Rails Controller • Filter • Filter-Methoden haben Zugriff auf • Request-Objekt (später) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 78. 5. Rails Controller • Filter • Filter-Methoden haben Zugriff auf • Request-Objekt (später) • Response-Objekt (später) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 79. 5. Rails Controller • Filter • Filter-Methoden haben Zugriff auf • Request-Objekt (später) • Response-Objekt (später) • Instanz-Variablen (Action, Filter, ...) Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 27
  • 80. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 28
  • 81. 5. Rails Controller • Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 28
  • 82. 5. Rails Controller • Filter • Bedingte Auführung von Filtern Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 28
  • 83. 5. Rails Controller • Filter • Bedingte Auführung von Filtern • :only - Filtert nur die angegebenen Methoden Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 28
  • 84. 5. Rails Controller • Filter • Bedingte Auführung von Filtern • :only - Filtert nur die angegebenen Methoden • :except - Filtert alle außer den angebenen Methoden Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 28
  • 85. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 29
  • 86. 5. Rails Controller • Filter Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 29
  • 87. 5. Rails Controller • Filter • Beispiel! Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 29
  • 88. 5. Rails Controller • Filter • Beispiel! • Mehr Informationen über Filter: http://api.rubyonrails.org/classes/ ActionController/Filters/ ClassMethods.html#M000312 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 29
  • 89. Request - Objekt Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 30
  • 90. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 91. 5. Rails Controller • request-Variable enthält Informationen des HTTP-Requests wie: Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 92. 5. Rails Controller • request-Variable enthält Informationen des HTTP-Requests wie: • Protocol: Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 93. 5. Rails Controller • request-Variable enthält Informationen des HTTP-Requests wie: • Protocol: • http Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 94. 5. Rails Controller • request-Variable enthält Informationen des HTTP-Requests wie: • Protocol: • http • https Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 95. 5. Rails Controller • request-Variable enthält Informationen des HTTP-Requests wie: • Protocol: • http • https • Port Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 31
  • 96. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 32
  • 97. 5. Rails Controller • request-Variable enthält u.a. Informationen wie: Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 32
  • 98. 5. Rails Controller • request-Variable enthält u.a. Informationen wie: • xml_http_request? - Liegt ein AJAX- Request vor? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 32
  • 99. 5. Rails Controller • request-Variable enthält u.a. Informationen wie: • xml_http_request? - Liegt ein AJAX- Request vor? • xhr? Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 32
  • 100. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 33
  • 101. 5. Rails Controller • Mehr Informationen über das Request- Objekt: http://api.rubyonrails.org/classes/ActionController/ AbstractRequest.html Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 33
  • 102. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 34
  • 103. 5. Rails Controller • response-Variable enthält Infos zur HTTP- Antwort, die an den Client gesendet wird Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 34
  • 104. Session-Objekt Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 35
  • 105. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 36
  • 106. 5. Rails Controller • Session-Hash session[:my_key] = „Mein Wert“ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 36
  • 107. 5. Rails Controller • Session-Hash session[:my_key] = „Mein Wert“ • Verfügbar während einer User-Session Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 36
  • 108. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 37
  • 109. 5. Rails Controller • Rails verwendet Cookie-basierte Sessions Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 37
  • 110. 5. Rails Controller • Rails verwendet Cookie-basierte Sessions • Rails speichert, seit Version 2.0, Session- Informationen verschlüsselt im Cookie Max. 4 KB / Session Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 37
  • 111. 5. Rails Controller • Rails verwendet Cookie-basierte Sessions • Rails speichert, seit Version 2.0, Session- Informationen verschlüsselt im Cookie Max. 4 KB / Session • Kann auf DB-, File-, oder Memcache-Store umgestellt werden Keine Größenbeschränkung Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 37
  • 112. 5. Rails Controller Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 38
  • 113. 5. Rails Controller • Mehr Informationen über Sessions: http://api.rubyonrails.org/classes/ActionController/ Base.html Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 38
  • 114. A.1 Literatur und Links Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 39
  • 115. A.1 Literatur und Links Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 40
  • 116. A.1 Literatur und Links • Action-Controller http://api.rubyonrails.org/classes/ ActionController/Base.html Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 40
  • 117. A.1 Literatur und Links • Action-Controller http://api.rubyonrails.org/classes/ ActionController/Base.html • Ruby - API http://www.ruby-doc.org/core/ Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 40
  • 118. A.1 Literatur und Links • Action-Controller http://api.rubyonrails.org/classes/ ActionController/Base.html • Ruby - API http://www.ruby-doc.org/core/ • Ruby - API - Filter http://api.rubyonrails.org/classes/ActionController/ Filters/ClassMethods.html#M000312 Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 40
  • 119. A.1 Literatur und Links Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 41
  • 120. A.1 Literatur und Links • Ruby - API - Sessions http://api.rubyonrails.org/classes/ActionController/ Base.html -> Sessions Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 41
  • 121. A.1 Literatur und Links • Ruby - API - Sessions http://api.rubyonrails.org/classes/ActionController/ Base.html -> Sessions • Apidock.com - Eine alternative Rails/Ruby/ RSpec Dokumentation http://www.apidock.com Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 41

Hinweis der Redaktion

  • #8: Es gibt noch viele weitere Rails Idiome, die wir im weiteren Verlauf der Vorlesung kennenlernen werden...
  • #13: Demonstrieren! (Wiederholung)
  • #14: Demonstrieren! (Wiederholung)
  • #15: Demonstrieren! (Wiederholung)
  • #16: Demonstrieren! (Wiederholung)
  • #25: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #26: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #27: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #28: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #29: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #30: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable
  • #31: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable Route = schöne Schreibweise, entfernt ?, & aus URL Es fehlt hier: Verschachtelte Datenstrukturen, Zusammenhang mit Name von Formular-Elementnamen
  • #32: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable Route = schöne Schreibweise, entfernt ?, & aus URL Es fehlt hier: Verschachtelte Datenstrukturen, Zusammenhang mit Name von Formular-Elementnamen
  • #33: Demonstrieren! (Wiederholung) --> View konstruieren -> Darstellung des Parameters über Instanzvariable Route = schöne Schreibweise, entfernt ?, & aus URL Es fehlt hier: Verschachtelte Datenstrukturen, Zusammenhang mit Name von Formular-Elementnamen
  • #46: machine_url bringt Flexibilität. Route kann geändert werden --> URLs werden automatisch mit geändert, da on-the-fly generiert. machine_url generiert automatisch eine URL, die zur Route map.machine passt!
  • #47: machine_url bringt Flexibilität. Route kann geändert werden --> URLs werden automatisch mit geändert, da on-the-fly generiert. machine_url generiert automatisch eine URL, die zur Route map.machine passt!
  • #48: machine_url bringt Flexibilität. Route kann geändert werden --> URLs werden automatisch mit geändert, da on-the-fly generiert. machine_url generiert automatisch eine URL, die zur Route map.machine passt!
  • #49: machine_url bringt Flexibilität. Route kann geändert werden --> URLs werden automatisch mit geändert, da on-the-fly generiert. machine_url generiert automatisch eine URL, die zur Route map.machine passt!
  • #50: machine_url bringt Flexibilität. Route kann geändert werden --> URLs werden automatisch mit geändert, da on-the-fly generiert. machine_url generiert automatisch eine URL, die zur Route map.machine passt!
  • #59: Instanzvariablen, die von der betreffenden Action oder einem anderen Filter der Chain definiert wurden.
  • #60: Instanzvariablen, die von der betreffenden Action oder einem anderen Filter der Chain definiert wurden.
  • #61: Instanzvariablen, die von der betreffenden Action oder einem anderen Filter der Chain definiert wurden.
  • #62: Instanzvariablen, die von der betreffenden Action oder einem anderen Filter der Chain definiert wurden.
  • #63: Instanzvariablen, die von der betreffenden Action oder einem anderen Filter der Chain definiert wurden.
  • #64: Demonstration!
  • #65: Demonstration!
  • #66: Demonstration!
  • #67: Demonstration!
  • #80: Demonstration!
  • #83: Demonstration!
  • #84: Demonstration!
  • #85: Demonstration!
  • #86: Demonstration!
  • #87: Demonstration!
  • #88: Demonstration!
  • #89: Symbole: etwas speichersparender als Strings, oft als Hash-Keys verwendet