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

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) JulianFischer - 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) JulianFischer - 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) JulianFischer - 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) JulianFischer - 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) JulianFischer - 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) JulianFischer - 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) JulianFischer - 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 undLinks Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 39
  • 115.
    A.1 Literatur undLinks Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 40
  • 116.
    A.1 Literatur undLinks • 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 undLinks • 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 undLinks • 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 undLinks Dipl.-Inf. (FH) Julian Fischer - fischer@avarteq.de - www.avarteq.de - www.railshoster.de - www.enterprise-rails.de 41
  • 120.
    A.1 Literatur undLinks • 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 undLinks • 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