SlideShare a Scribd company logo
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TREœCI
                                         Ruby on Rails.
                                         Æwiczenia
           KATALOG KSI¥¯EK               Autor: Micha³ Sobczak
                                         ISBN: 83-246-0661-0
                      KATALOG ONLINE     Format: A5, stron: 192

       ZAMÓW DRUKOWANY KATALOG


              TWÓJ KOSZYK                            Stwórz aplikacje internetowe za pomoc¹ nowoczesnego narzêdzia
                                              • Poznaj jêzyk Ruby
                    DODAJ DO KOSZYKA          • Skorzystaj ze œrodowiska Rails
                                              • Napisz w³asne aplikacje
                                         W dobie rosn¹cej popularnoœci Linuksa, nies³abn¹cej popularnoœci systemu Windows
         CENNIK I INFORMACJE             i obecnoœci na rynku innych systemów operacyjnych aplikacje „biurkowe”, wymagaj¹ce
                                         konkretnego œrodowiska uruchomieniowego, trac¹ swoj¹ pozycjê. Ich miejsce zajmuj¹
                   ZAMÓW INFORMACJE      aplikacje intranetowe b¹dŸ internetowe — instalowane na serwerach sieciowych,
                     O NOWOœCIACH        wymagaj¹ce po stronie u¿ytkownika jedynie przegl¹darki WWW. Rozwi¹zanie takie jest
                                         niezwykle wygodne równie¿ dla twórców aplikacji, poniewa¿ zdecydowanie upraszcza
                       ZAMÓW CENNIK      proces wprowadzania nowych wersji systemu oraz jego konserwacji. Istnieje wiele
                                         technologii u³atwiaj¹cych tworzenie takich aplikacji. Jedn¹ z nowoœci na rynku jest
                                         zyskuj¹ca coraz wiêksze uznanie Ruby on Rails.
                 CZYTELNIA               Dziêki ksi¹¿ce „Ruby on Rails. Æwiczenia” opanujesz podstawy tworzenia aplikacji
                                         internetowych za pomoc¹ tej technologii. Nauczysz siê programowaæ w jêzyku Ruby:
          FRAGMENTY KSI¥¯EK ONLINE       poznasz jego elementy i zasady projektowania obiektowego, metody przetwarzania
                                         danych tekstowych, pracy z plikami i katalogami oraz obs³ugi b³êdów i wyj¹tków.
                                         Przeczytasz tak¿e o œrodowisku Rails, instalowanym na serwerze aplikacji. Wykonuj¹c
                                         æwiczenia z ostatnich rozdzia³ów, zrealizujesz projekt aplikacji s³u¿¹cej do zarz¹dzania
                                         czasem w technice Ruby on Rails.
                                              • Instalacja interpretera Ruby
                                              • Podstawowe elementy jêzyka Ruby
                                              • Konstrukcje warunkowe i steruj¹ce
                                              • Programowanie obiektowe
                                              • Obs³uga wyj¹tków
                                              • Korzystanie z wyra¿eñ regularnych
Wydawnictwo Helion                            • Instalacja œrodowiska Rails
ul. Koœciuszki 1c                             • Generowanie adresów URL
44-100 Gliwice                                • Szablony RHTML
tel. 032 230 98 63                            • Wysy³anie poczty elektronicznej
e-mail: helion@helion.pl                                Poznaj ju¿ dziœ technologiê, dziêki której tworzenie aplikacji
                                                                    bêdzie bardzo wydajne i przyjemne
Wstęp                        7
Część I     Ruby                         9
Rozdział 1. Wprowadzenie do Ruby         11
Rozdział 2. Instalacja interpretera      15
            Windows                      15
            Linux                        16
            Podsumowanie                 18

Rozdział 3. System pomocy — RI           19
            Podsumowanie                 20

Rozdział 4. Podstawy składni             21
            Standardy nazewnictwa        21
            Tablice                      25
            Zakresy                      28
            Iteratory                    29
            Bloki kodu                   30
            BEGIN oraz END               31
            Dołączanie kodu źródłowego   32
            Zmienne predefiniowane       33
            Słowa kluczowe               34
            Istotne uwagi                34
            Podsumowanie                 35
4                       Ruby on Rails • Ćwiczenia

Rozdział 5. Struktury kontrolne                     37
            Warunek if                              38
            Warunek unless                          40
            Warunek case — wielokrotny wybór        40
            Pętla for                               41
            Pętla loop                              43
            Pętla while                             43
            Pętla until                             44
            break, redo, next i retry               45
            each                                    45
            Podsumowanie                            46
Rozdział 6. Programowanie zorientowane obiektowo    47
            Klasy i obiekty                         47
            Metody                                  48
            Metody klas                             50
            Moduły                                  52
            Metody modułów                          53
            Rozszerzanie obiektów                   53
            Dziedziczenie                           54
            Singletony                              55
            Kontrola dostępu                        56
            Podsumowanie                            58
Rozdział 7. Wyjątki                                 59
            rescue                                  59
            raise                                   60
            ensure                                  60
            catch i throw                           61
            Podsumowanie                            62
Rozdział 8. Wyrażenia regularne                     63
            Pierwszy kontakt                        64
            Dopasowanie                             64
            Klasy znaków                            67
            Zamiana                                 68
            Podejście obiektowe                     69
            Podsumowanie                            70
Rozdział 9. Operacje wejścia i wyjścia              71
            Operacje podstawowe                     71
            Pliki                                   73
            Podsumowanie                            74
Spis treści         5

Rozdział 10. Usuwanie błędów                         75
             Podsumowanie                             76
Rozdział 11. Biblioteka klas                          77
             Array                                    77
             Object                                   80
             File                                     81
             Podsumowanie                             82

Część II     Rails                                    9
Rozdział 12. Wprowadzenie do Rails                   85
Rozdział 13. Rails — instalacja                       87
             Rails                                    87
             XAMPP                                    88
             Podsumowanie                             92
Rozdział 14. Pierwsza aplikacja                       93
             Przypomnienie                            93
             Drzewo projektu                          94
             WEBrick                                  96
             Witaj świecie                            97
             Znaczniki                                99
             Podsumowanie                            102
Rozdział 15. Active Record                           103
             Przygotowanie środowiska                103
             Przepisy kulinarne                      106
             Zmiana wyglądu                          108
             Kategorie                               111
             Podsumowanie                            114
Rozdział 16. Action Controller                       115
             Routing                                 115
             Generowanie URL                         118
             Metody akcji                            120
             Środowisko kontrolera                   121
             Generowanie szablonów                   122
             Wysyłanie danych                        122
             Ciasteczka                              123
             Flash — komunikacja pomiędzy metodami   124
             Filtry                                  125
             Podsumowanie                            126
6                          Ruby on Rails • Ćwiczenia

Rozdział 17. Action View                               127
            Szablony RHTML                             127
            Helpers — wsparcie pomocników              130
            Formatowanie                               133
            Odnośniki                                  136
            Stronicowanie                              137
            Elementy formularzy                        138
            Podsumowanie                               140

Rozdział 18. Action Mailer                             141
            Wysyłanie poczty                           141
            Odbieranie poczty                          147
            Podsumowanie                               149

Rozdział 19. Web 2.0                                   151
            link_to_remote                             151
            observe_field                              154
            periodically_call_remote                   155
            Podsumowanie                               157

Rozdział 20. Bezpieczeństwo                            159
            SQL Injection                              159
            CSS/XSS                                    161
            Formularze                                 162
            Publiczne metody kontrolerów               163
            Upload plików                              164
            Podsumowanie                               164

Rozdział 21. Zakończenie                               165
Część III   Dodatki                                    167
Dodatek A   Projekt — TimeTracker                      169
            Przygotowanie                              169
            Wersja SQLite                              170
            Wersja MySQL                               172
            Opis działania                             174
            Opis budowy                                178
            Podsumowanie                               186
Zazwyczaj rozpoczynając przygodę z jakimkolwiek językiem
           programowania, pierwszą aplikacją, która wychodzi spod
           naszych rąk, jest znane wszystkim „Witaj świecie”. Tak też
    będzie w tym przypadku.

Ć W I C Z E N I E

    14.1            Pierwsza aplikacja

    Aby stworzyć pierwszą aplikację:
     1. Uruchom edytor tekstowy.
     2. Zapisz poniższy kod źródłowy do nowego pliku.
                    class Osoba
                    @@ilosc = 0
                    def initialize(imie, nazwisko, wiek)
                       @imie = imie
                       @nazwisko = nazwisko
                       @wiek = wiek
                       @@ilosc += 1
                    end

                    def przywitaj_sie
                       puts "Nazywam sie #{@imie} #{@nazwisko}."
                       puts "Mam #{@wiek} lat."
                    end
94                                  Część II • Rails

                    def Osoba.ile_osob
                       puts "Utworzono #{@@ilosc} osob!"
                    end
                    end

                    pracownik_1 = Osoba.new("Michal", "Sobczak", 19)
                    pracownik_1.przywitaj_sie
                    Osoba.ile_osob

       3. Zapisz plik i wykonaj go w interpreterze języka Ruby. Wpisz
          w wierszu poleceń ruby <nazwa pliku>.
    W powyższym przykładzie utworzyliśmy klasę Osoba. Ponadto zdefi-
    niowaliśmy trzy metody. Pierwsza z nich to metoda inicjalizacji
    obiektu danej klasy. Druga to metoda przywitaj_sie, która jest odpo-
    wiedzialna za wyświetlenie na ekranie podanego tekstu w postaci
    imienia, nazwiska oraz wieku. Ostatnia z nich wyświetla liczbę utwo-
    rzonych do tej pory obiektów klasy Osoba. Za przechowywanie infor-
    macji o liczbie tych obiektów odpowiedzialna jest zmienna klasy no-
    sząca nazwę ilość.
    Przykład ten miał na celu przypomnienie składni języka. Mając za
    sobą wprowadzenie do środowiska oraz ogólny przegląd jego możli-
    wości w poprzednich rozdziałach, czas na zastosowanie naszej jak
    dotąd skromnej wiedzy w praktyce.




Ć W I C Z E N I E

    14.2            Utworzenie aplikacji wraz z drzewem projektu

    Aby utworzyć nową aplikację, a wraz z nią drzewo projektu:
     1. Uruchom wiersz poleceń.
     2. Wpisz polecenie rails <nazwa aplikacji> (rysunek 14.1).




       Rysunek 14.1. Utworzenie nowej aplikacji w Rails
Rozdział 14. • Pierwsza aplikacja        95
Ć W I C Z E N I E

    14.3            Przygotowanie środowiska pracy

    Zaczynając pracę z Rails, niezmiernie istotne jest, aby wybrać kata-
    log, w którym będziemy przechowywać nasze projekty. Ważne jest,
    żeby katalog ten znajdował się jak najwyżej w strukturze katalogów
    dysku twardego.
      1. W wierszu poleceń wpisz mkdir <nazwa katalogu>, żeby utworzyć
         nowy katalog.
      2. Do katalogu przechodzimy poleceniem cd <nazwa katalogu>.
      3. Żeby wyświetlić wszystkie pliki oraz katalogi w katalogu,
         w którym znajdujemy się obecnie, używamy polecenia dir
         (rysunek 14.2).




       Rysunek 14.2. Drzewo projektu

       4. Żeby wyświetlić to samo, ale rekursywnie, czyli wraz
          z zawartością podkatalogów, wpisujemy dir /S.

Ć W I C Z E N I E

    14.4            Obsługa wbudowanego w wiersz poleceń edytora tekstu

    Aby uruchomić wbudowany w wiersz poleceń edytor tekstu:
     1. Uruchom wiersz poleceń.
96                              Część II • Rails

       2. Edytor uruchamiamy poleceniem edit. Używając edytora edit,
          możemy poruszać się pomiędzy poleceniami menu edytora
          na dwa sposoby — za pomocą myszy albo klawiatury.
       3. Żeby dostać się do menu za pomocą klawiatury, używamy
          kombinacji klawiszy Alt+wiodąca litera menu.
       4. Na przykład, aby dostać się do menu Plik, wybierzmy Alt+p.
          Kiedy naciśniemy klawisz Alt, podświetlone zostaną wiodące
          litery menu.
    Jeśli chcesz zapoznać się ze znaczeniem poszczególnych katalogów
    z drzewie projektu, sięgnij do dokumentacji Ruby on Rails, która znaj-
    duje się pod adresem http://www.rubyonrails.org/docs.




Ć W I C Z E N I E

    14.5            Uruchomienie serwera WEBrick

    Aby uruchomić serwer WEBrick:
     1. Uruchom wiersz poleceń.
     2. Aby uruchomić serwer WEBrick, wydajemy polecenie ruby
        scriptserver (rysunek 14.3).




       Rysunek 14.3. Uruchomienie serwera WEBrick
Rozdział 14. • Pierwsza aplikacja                 97




    Kilka chwil wcześniej stworzyliśmy nowy projekt poleceniem rails
    <nazwa projektu> i w związku z tym mamy już całe drzewo aplikacji,
    które będzie dla nas szablonem do tworzenia w późniejszym czasie
    bardziej zaawansowanych aplikacji niż obecne „Witaj świecie”.
    Stwórzmy zatem aplikację, która będzie składała się z jednego kon-
    trolera oraz kilku metod. Do tej operacji będziemy potrzebowali pod-
    stawowej znajomości HTML i CSS1.

Ć W I C Z E N I E

    14.6            Utworzenie pierwszego kontrolera i widoku

    Aby utworzyć kontroler:
     1. Uruchom wiersz poleceń.
     2. Przejdź do katalogu z projektem, na przykład cd railstest.
     3. Wykonaj polecenie ruby scriptgenerate controller WitajSwiecie,
        aby stworzyć nowy kontroler (rysunek 14.4).




        Rysunek 14.4. Utworzenie kontrolera WitajSwiecie

        4. Przejdź do katalogu appcontrollers poleceniem cd
           appcontrollers.
        5. Wykonaj polecenie dir w celu przejrzenia zawartości katalogu.
           W tym momencie widzimy dwa pliki: application.rb oraz
           witaj_swiecie_controller.rb. Są to kontrolery akcji. W tym
           przypadku najbardziej interesuje nas witaj_swiecie_controller.rb.
        6. Edytuj plik witaj_swiecie_controller.rb (rysunek 14.5).


    1
        Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS) jest to język
        służący do opisu sposobu generowania stron WWW — przyp. aut.
98                           Część II • Rails

 Rysunek 14.5.
 Edytor gVim
 z otwartym
 plikiem kontrolera
 WitajSwiecie




 7. Zapisz do pliku witaj_swiecie_controller.rb następujący kod:
         class WitajSwiecieController < ApplicationController
            def witaj
            end
         end

 8. Otwórz przeglądarkę, na przykład Internet Explorer, i wpisz:
    http://12httttt1:2ttt/witaj_swiecie (rysunek 14.6).

 Rysunek 14.6.
 Nieznana akcja
 (unknown action)


 9. Po wpisaniu http://12httttt1:2ttt/witaj_swiecie/witaj
     otrzymamy błąd innego rodzaju. Poprzedni mówi nam, że
     wprawdzie mamy taki kontroler, ale nie mamy żadnej akcji
     z nim związanej. Z tego powodu musimy stworzyć widok
     dla kontrolera, żeby mógł się wyświetlić (rysunek 14.7).

 Rysunek 14.7.
 Brak szablonu
 (template is
 missing)

10. cd ttviews oraz cd witaj_swiecie.
11. Stwórz plik szablonu o nazwie, jaką posiada metoda
    w kontrolerze WitajSwiecie, czyli witaj.rhtml:
         <html>
            <head>
            <title>Witaj swiecie!</title>
            <style type="text/css">
               table.tabela
               {font-weight:bold;}
               div
               {text-align:center;}
            </style>
Rozdział 14. • Pierwsza aplikacja            99

            </head>
            <body>
               <h1>Witaj świecie!</h1>
               <div>
                  <table class="tabela">
                     <tr><td>Witaj swiecie!</td></tr>
                  </table>
               </div>
            </body>
         </html>

12. Teraz pod adresem http://127.0.0.1:3000/WitajSwiecie/witaj
    możesz zobaczyć swoją pierwszą działającą aplikację.
    Gratulacje! To jednak nie wszystko.
13. Edytuj plik witaj_swiecie_controller.rb.
         class WitajSwiecieController < ApplicationController
         def witaj
            5.times do |@i| @i+=1 end
         end
         end

14. Edytuj plik witaj.rhtml.
         <table class="tabela">
            <tr>
               <td>Witaj swiecie!</td>
               <td><%= @i %>
            </tr>
         </table>

Wynikiem powyższych działań jest wyświetlenie liczby 5. Jak widać,
kontrolery oraz widoki współpracują ze sobą, przekazując sobie na-
wzajem wartości zmiennych.




Znaczniki pozwalają na osadzanie instrukcji języka Ruby pomiędzy
kodem w języku HTML.
100                                    Część II • Rails

Ć W I C Z E N I E

    14.7            Osadzanie znaczników Ruby w HTML

    Aby osadzić znaczniki języka Ruby stronie HTML, podążaj za poniż-
    szym opisem:
     1. Wartości wyrażeń w plikach rhtml zapisujemy pomiędzy
        znacznikami <%= oraz %>. Wszystko pomiędzy nimi jest zamieniane
        na łańcuch znaków i wyświetlane w przeglądarce. Załóżmy,
        że stworzymy taką konstrukcję:
                    <%= puts "Witaj!" %>

       2. Zostanie to co prawda wyświetlone, ale nie tam, gdzie
            moglibyśmy się tego spodziewać. Pamiętamy okno wiersza
            poleceń, w którym uruchamialiśmy WEBrick? Jeśli użyjemy
            standardowego wyjścia dla danych, pojawią one się właśnie
            w konsoli z uruchomionym serwerem.
                    <%= 1+< %>
                    <%= "jeden" + "dwa" $>

       3. Istnieje ponadto druga para znaczników <%, %>. Wszystko
            pomiędzy nim może być, tak jak w przypadku poprzedników,
            kodem źródłowych języka Ruby. Różnica polega na tym, że
            znacznik ten nie zamienia swojego wyjścia na łańcuch znaków
            i nie próbuje go wyświetlić. Znacznik ten jest najczęściej
            stosowany do iteracji oraz pętli i warunków wyświetlania
            kodu HTML.
                    <% 3.times do %>
                       Witaj!<br>
                    <% end %>

       4. Istnieje możliwość łączenia obu znaczników.
                    <% 4.times do |i| %>
                        <%= i %> <br>
                    <% end %>

       5. Na zakończenie czas stworzyć drugą metodę klasy kontrolera,
            stworzyć widok oraz połączyć obie strony odnośnikami. Edytuj
            plik witaj_swiecie_controller.rb.
                    class WitajSwiecieController < ApplicationController
                    def witaj
                       5.times do |@i| @i+=1 end
                    end
Rozdział 14. • Pierwsza aplikacja                 101

       def doZobaczenia
       end
       end

6. Edytuj plik widoku doZobaczenia.rhtml.
       <html>
          <head>
             <title>Do Zobaczenia!</title>
          </head>
          <body>
             Do zobaczenia!
             <br>
             <%= link_to "Witaj!", :action => "witaj" %>
          </body>
       </html>

7. Do pliku witaj.rhtml dodaj:
       <%= link_to "Do Zobaczenia!", :action => "doZobaczenia" %>

8. Obejrzyj wynik tego ćwiczenia w przeglądarce internetowej
   pod adresem http://127.0.0.1:3000/witaj_swiecie/witaj
   (rysunki 14.8 i 14.9).

Rysunek 14.8.
Pierwsza
aplikacja




Rysunek 14.9.
Działanie
odnośnika
102                      Część II • Rails




W rozdziale:
 q Przypomnieliśmy sobie składnię języka Ruby.
 q Utworzyliśmy szkielet aplikacji Rails.
 q Uruchomiliśmy serwer WEBrick.
 q Stworzyliśmy przykładowy kontroler oraz dwa widoki.
 q Dowiedzieliśmy się, jak wykorzystywać znaczniki osadzania
    kodu źródłowego języka Ruby pomiędzy kodem HTML.
 q Połączyliśmy dwie strony odsyłaczami.

More Related Content

Viewers also liked

BuildingdigitalServiceswithServiceBuildingBlocks (2)
BuildingdigitalServiceswithServiceBuildingBlocks (2)BuildingdigitalServiceswithServiceBuildingBlocks (2)
BuildingdigitalServiceswithServiceBuildingBlocks (2)
Helmut Steigele
 
BUSCA TU PAREJA
BUSCA TU PAREJABUSCA TU PAREJA
BUSCA TU PAREJA
angiloaiza
 
MOBOTIX International Partner Conference
MOBOTIX International Partner Conference MOBOTIX International Partner Conference
MOBOTIX International Partner Conference
Global Surveillance Systems
 
Articulo
ArticuloArticulo
[2] grupos
[2] grupos[2] grupos
[2] grupos
piyo2770
 
資訊作業11431
資訊作業11431資訊作業11431
資訊作業11431思瑩 李
 
Tratamiento del biogás para pilas de combustible
Tratamiento del biogás para pilas de combustibleTratamiento del biogás para pilas de combustible
Tratamiento del biogás para pilas de combustible
Raquel Gavilán Párraga
 
Manejo y uso de las nuevas tecnologías en la tercera edad
Manejo y uso de las nuevas tecnologías en la tercera edadManejo y uso de las nuevas tecnologías en la tercera edad
Manejo y uso de las nuevas tecnologías en la tercera edad
2867jbc
 
How to speak english fluently-inlingua method
How to speak english fluently-inlingua methodHow to speak english fluently-inlingua method
How to speak english fluently-inlingua method
DhaneshRathore
 
11
1111
Ludeos - Venda seu conteúdo online (how it works)
Ludeos - Venda seu conteúdo online (how it works)Ludeos - Venda seu conteúdo online (how it works)
Ludeos - Venda seu conteúdo online (how it works)
Osvaldo Santana Neto
 
Grupul de firme Cotraco - Un partener de incredere
Grupul de firme Cotraco - Un partener de incredereGrupul de firme Cotraco - Un partener de incredere
Grupul de firme Cotraco - Un partener de incredere
Unserver Business Solutions
 
35 SANGUESA 13 - - MAPA Y FOLLETO INFORMATIVO TURISMO NAVARRA TURIS...
35   SANGUESA   13 - -   MAPA Y FOLLETO INFORMATIVO   TURISMO NAVARRA   TURIS...35   SANGUESA   13 - -   MAPA Y FOLLETO INFORMATIVO   TURISMO NAVARRA   TURIS...
35 SANGUESA 13 - - MAPA Y FOLLETO INFORMATIVO TURISMO NAVARRA TURIS...
Casa Rural Urbasa Urederra en Navarra
 
Org.y Estructura - TP terminado UNLaM - Lic. O.Valencia
Org.y Estructura - TP terminado UNLaM - Lic. O.ValenciaOrg.y Estructura - TP terminado UNLaM - Lic. O.Valencia
Org.y Estructura - TP terminado UNLaM - Lic. O.Valencia
UNLZ - UNIVERSIDAD DE LOMAS DE ZAMORA
 
Las nuevas tecnologias aplicadas a la educación
Las nuevas tecnologias aplicadas a la educaciónLas nuevas tecnologias aplicadas a la educación
Las nuevas tecnologias aplicadas a la educación
Krla Caballero Marrugo
 

Viewers also liked (16)

BuildingdigitalServiceswithServiceBuildingBlocks (2)
BuildingdigitalServiceswithServiceBuildingBlocks (2)BuildingdigitalServiceswithServiceBuildingBlocks (2)
BuildingdigitalServiceswithServiceBuildingBlocks (2)
 
Com basis 2011
Com basis 2011Com basis 2011
Com basis 2011
 
BUSCA TU PAREJA
BUSCA TU PAREJABUSCA TU PAREJA
BUSCA TU PAREJA
 
MOBOTIX International Partner Conference
MOBOTIX International Partner Conference MOBOTIX International Partner Conference
MOBOTIX International Partner Conference
 
Articulo
ArticuloArticulo
Articulo
 
[2] grupos
[2] grupos[2] grupos
[2] grupos
 
資訊作業11431
資訊作業11431資訊作業11431
資訊作業11431
 
Tratamiento del biogás para pilas de combustible
Tratamiento del biogás para pilas de combustibleTratamiento del biogás para pilas de combustible
Tratamiento del biogás para pilas de combustible
 
Manejo y uso de las nuevas tecnologías en la tercera edad
Manejo y uso de las nuevas tecnologías en la tercera edadManejo y uso de las nuevas tecnologías en la tercera edad
Manejo y uso de las nuevas tecnologías en la tercera edad
 
How to speak english fluently-inlingua method
How to speak english fluently-inlingua methodHow to speak english fluently-inlingua method
How to speak english fluently-inlingua method
 
11
1111
11
 
Ludeos - Venda seu conteúdo online (how it works)
Ludeos - Venda seu conteúdo online (how it works)Ludeos - Venda seu conteúdo online (how it works)
Ludeos - Venda seu conteúdo online (how it works)
 
Grupul de firme Cotraco - Un partener de incredere
Grupul de firme Cotraco - Un partener de incredereGrupul de firme Cotraco - Un partener de incredere
Grupul de firme Cotraco - Un partener de incredere
 
35 SANGUESA 13 - - MAPA Y FOLLETO INFORMATIVO TURISMO NAVARRA TURIS...
35   SANGUESA   13 - -   MAPA Y FOLLETO INFORMATIVO   TURISMO NAVARRA   TURIS...35   SANGUESA   13 - -   MAPA Y FOLLETO INFORMATIVO   TURISMO NAVARRA   TURIS...
35 SANGUESA 13 - - MAPA Y FOLLETO INFORMATIVO TURISMO NAVARRA TURIS...
 
Org.y Estructura - TP terminado UNLaM - Lic. O.Valencia
Org.y Estructura - TP terminado UNLaM - Lic. O.ValenciaOrg.y Estructura - TP terminado UNLaM - Lic. O.Valencia
Org.y Estructura - TP terminado UNLaM - Lic. O.Valencia
 
Las nuevas tecnologias aplicadas a la educación
Las nuevas tecnologias aplicadas a la educaciónLas nuevas tecnologias aplicadas a la educación
Las nuevas tecnologias aplicadas a la educación
 

Similar to Ruby on Rails. Ćwiczenia

Programowanie w języku Ruby. Wydanie II
Programowanie w języku Ruby. Wydanie IIProgramowanie w języku Ruby. Wydanie II
Programowanie w języku Ruby. Wydanie II
Wydawnictwo Helion
 
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowychRuby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Wydawnictwo Helion
 
PHP Web 2.0. Tworzenie aplikacji typu mashup
PHP Web 2.0. Tworzenie aplikacji typu mashupPHP Web 2.0. Tworzenie aplikacji typu mashup
PHP Web 2.0. Tworzenie aplikacji typu mashup
Wydawnictwo Helion
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowe
Wydawnictwo Helion
 
Programowanie obiektowe w PHP 5
Programowanie obiektowe w PHP 5Programowanie obiektowe w PHP 5
Programowanie obiektowe w PHP 5Wydawnictwo Helion
 
Programowanie skryptów powłoki
Programowanie skryptów powłokiProgramowanie skryptów powłoki
Programowanie skryptów powłoki
Wydawnictwo Helion
 
C#. Programowanie
C#. ProgramowanieC#. Programowanie
C#. Programowanie
Wydawnictwo Helion
 
C++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczneC++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczne
Wydawnictwo Helion
 
JavaScript. Ćwiczenia praktyczne. Wydanie II
JavaScript. Ćwiczenia praktyczne. Wydanie IIJavaScript. Ćwiczenia praktyczne. Wydanie II
JavaScript. Ćwiczenia praktyczne. Wydanie II
Wydawnictwo Helion
 
PHP 5. Nowe możliwości
PHP 5. Nowe możliwościPHP 5. Nowe możliwości
PHP 5. Nowe możliwości
Wydawnictwo Helion
 
ASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. WprowadzenieASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. Wprowadzenie
Wydawnictwo Helion
 
J2EE. Wzorce projektowe
J2EE. Wzorce projektoweJ2EE. Wzorce projektowe
J2EE. Wzorce projektowe
Wydawnictwo Helion
 
Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polska
Wydawnictwo Helion
 
Perl. Zaawansowane programowanie. Wydanie II
Perl. Zaawansowane programowanie. Wydanie IIPerl. Zaawansowane programowanie. Wydanie II
Perl. Zaawansowane programowanie. Wydanie II
Wydawnictwo Helion
 
Spring. Zapiski programisty
Spring. Zapiski programistySpring. Zapiski programisty
Spring. Zapiski programisty
Wydawnictwo Helion
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
Michał Dudak
 
C#. Ćwiczenia. Wydanie II
C#. Ćwiczenia. Wydanie IIC#. Ćwiczenia. Wydanie II
C#. Ćwiczenia. Wydanie II
Wydawnictwo Helion
 
Jak ugryźć Ruby, żeby nie połamać zębów?
Jak ugryźć Ruby, żeby nie połamać zębów?Jak ugryźć Ruby, żeby nie połamać zębów?
Jak ugryźć Ruby, żeby nie połamać zębów?
The Software House
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie II
Wydawnictwo Helion
 
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie IIPHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
Wydawnictwo Helion
 

Similar to Ruby on Rails. Ćwiczenia (20)

Programowanie w języku Ruby. Wydanie II
Programowanie w języku Ruby. Wydanie IIProgramowanie w języku Ruby. Wydanie II
Programowanie w języku Ruby. Wydanie II
 
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowychRuby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
Ruby on Rails 2.1. Tworzenie nowoczesnych aplikacji internetowych
 
PHP Web 2.0. Tworzenie aplikacji typu mashup
PHP Web 2.0. Tworzenie aplikacji typu mashupPHP Web 2.0. Tworzenie aplikacji typu mashup
PHP Web 2.0. Tworzenie aplikacji typu mashup
 
PHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowePHP i MySQL. Aplikacje bazodanowe
PHP i MySQL. Aplikacje bazodanowe
 
Programowanie obiektowe w PHP 5
Programowanie obiektowe w PHP 5Programowanie obiektowe w PHP 5
Programowanie obiektowe w PHP 5
 
Programowanie skryptów powłoki
Programowanie skryptów powłokiProgramowanie skryptów powłoki
Programowanie skryptów powłoki
 
C#. Programowanie
C#. ProgramowanieC#. Programowanie
C#. Programowanie
 
C++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczneC++Builder 2006. Ćwiczenia praktyczne
C++Builder 2006. Ćwiczenia praktyczne
 
JavaScript. Ćwiczenia praktyczne. Wydanie II
JavaScript. Ćwiczenia praktyczne. Wydanie IIJavaScript. Ćwiczenia praktyczne. Wydanie II
JavaScript. Ćwiczenia praktyczne. Wydanie II
 
PHP 5. Nowe możliwości
PHP 5. Nowe możliwościPHP 5. Nowe możliwości
PHP 5. Nowe możliwości
 
ASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. WprowadzenieASP.NET 2.0 i Ajax. Wprowadzenie
ASP.NET 2.0 i Ajax. Wprowadzenie
 
J2EE. Wzorce projektowe
J2EE. Wzorce projektoweJ2EE. Wzorce projektowe
J2EE. Wzorce projektowe
 
Head First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polskaHead First Servlets & JSP. Edycja polska
Head First Servlets & JSP. Edycja polska
 
Perl. Zaawansowane programowanie. Wydanie II
Perl. Zaawansowane programowanie. Wydanie IIPerl. Zaawansowane programowanie. Wydanie II
Perl. Zaawansowane programowanie. Wydanie II
 
Spring. Zapiski programisty
Spring. Zapiski programistySpring. Zapiski programisty
Spring. Zapiski programisty
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
 
C#. Ćwiczenia. Wydanie II
C#. Ćwiczenia. Wydanie IIC#. Ćwiczenia. Wydanie II
C#. Ćwiczenia. Wydanie II
 
Jak ugryźć Ruby, żeby nie połamać zębów?
Jak ugryźć Ruby, żeby nie połamać zębów?Jak ugryźć Ruby, żeby nie połamać zębów?
Jak ugryźć Ruby, żeby nie połamać zębów?
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie II
 
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie IIPHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
PHP5. Tworzenie stron WWW. Ćwiczenia praktyczne. Wydanie II
 

More from Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
Wydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
Wydawnictwo Helion
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
Wydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Wydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
Wydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Wydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Wydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
Wydawnictwo Helion
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
Wydawnictwo Helion
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
Wydawnictwo Helion
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
Wydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
Wydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
Wydawnictwo Helion
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
Wydawnictwo Helion
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
Wydawnictwo Helion
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
Wydawnictwo Helion
 

More from Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
Java. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie IIJava. Efektywne programowanie. Wydanie II
Java. Efektywne programowanie. Wydanie II
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 

Ruby on Rails. Ćwiczenia

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREœCI Ruby on Rails. Æwiczenia KATALOG KSI¥¯EK Autor: Micha³ Sobczak ISBN: 83-246-0661-0 KATALOG ONLINE Format: A5, stron: 192 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK Stwórz aplikacje internetowe za pomoc¹ nowoczesnego narzêdzia • Poznaj jêzyk Ruby DODAJ DO KOSZYKA • Skorzystaj ze œrodowiska Rails • Napisz w³asne aplikacje W dobie rosn¹cej popularnoœci Linuksa, nies³abn¹cej popularnoœci systemu Windows CENNIK I INFORMACJE i obecnoœci na rynku innych systemów operacyjnych aplikacje „biurkowe”, wymagaj¹ce konkretnego œrodowiska uruchomieniowego, trac¹ swoj¹ pozycjê. Ich miejsce zajmuj¹ ZAMÓW INFORMACJE aplikacje intranetowe b¹dŸ internetowe — instalowane na serwerach sieciowych, O NOWOœCIACH wymagaj¹ce po stronie u¿ytkownika jedynie przegl¹darki WWW. Rozwi¹zanie takie jest niezwykle wygodne równie¿ dla twórców aplikacji, poniewa¿ zdecydowanie upraszcza ZAMÓW CENNIK proces wprowadzania nowych wersji systemu oraz jego konserwacji. Istnieje wiele technologii u³atwiaj¹cych tworzenie takich aplikacji. Jedn¹ z nowoœci na rynku jest zyskuj¹ca coraz wiêksze uznanie Ruby on Rails. CZYTELNIA Dziêki ksi¹¿ce „Ruby on Rails. Æwiczenia” opanujesz podstawy tworzenia aplikacji internetowych za pomoc¹ tej technologii. Nauczysz siê programowaæ w jêzyku Ruby: FRAGMENTY KSI¥¯EK ONLINE poznasz jego elementy i zasady projektowania obiektowego, metody przetwarzania danych tekstowych, pracy z plikami i katalogami oraz obs³ugi b³êdów i wyj¹tków. Przeczytasz tak¿e o œrodowisku Rails, instalowanym na serwerze aplikacji. Wykonuj¹c æwiczenia z ostatnich rozdzia³ów, zrealizujesz projekt aplikacji s³u¿¹cej do zarz¹dzania czasem w technice Ruby on Rails. • Instalacja interpretera Ruby • Podstawowe elementy jêzyka Ruby • Konstrukcje warunkowe i steruj¹ce • Programowanie obiektowe • Obs³uga wyj¹tków • Korzystanie z wyra¿eñ regularnych Wydawnictwo Helion • Instalacja œrodowiska Rails ul. Koœciuszki 1c • Generowanie adresów URL 44-100 Gliwice • Szablony RHTML tel. 032 230 98 63 • Wysy³anie poczty elektronicznej e-mail: helion@helion.pl Poznaj ju¿ dziœ technologiê, dziêki której tworzenie aplikacji bêdzie bardzo wydajne i przyjemne
  • 2. Wstęp 7 Część I Ruby 9 Rozdział 1. Wprowadzenie do Ruby 11 Rozdział 2. Instalacja interpretera 15 Windows 15 Linux 16 Podsumowanie 18 Rozdział 3. System pomocy — RI 19 Podsumowanie 20 Rozdział 4. Podstawy składni 21 Standardy nazewnictwa 21 Tablice 25 Zakresy 28 Iteratory 29 Bloki kodu 30 BEGIN oraz END 31 Dołączanie kodu źródłowego 32 Zmienne predefiniowane 33 Słowa kluczowe 34 Istotne uwagi 34 Podsumowanie 35
  • 3. 4 Ruby on Rails • Ćwiczenia Rozdział 5. Struktury kontrolne 37 Warunek if 38 Warunek unless 40 Warunek case — wielokrotny wybór 40 Pętla for 41 Pętla loop 43 Pętla while 43 Pętla until 44 break, redo, next i retry 45 each 45 Podsumowanie 46 Rozdział 6. Programowanie zorientowane obiektowo 47 Klasy i obiekty 47 Metody 48 Metody klas 50 Moduły 52 Metody modułów 53 Rozszerzanie obiektów 53 Dziedziczenie 54 Singletony 55 Kontrola dostępu 56 Podsumowanie 58 Rozdział 7. Wyjątki 59 rescue 59 raise 60 ensure 60 catch i throw 61 Podsumowanie 62 Rozdział 8. Wyrażenia regularne 63 Pierwszy kontakt 64 Dopasowanie 64 Klasy znaków 67 Zamiana 68 Podejście obiektowe 69 Podsumowanie 70 Rozdział 9. Operacje wejścia i wyjścia 71 Operacje podstawowe 71 Pliki 73 Podsumowanie 74
  • 4. Spis treści 5 Rozdział 10. Usuwanie błędów 75 Podsumowanie 76 Rozdział 11. Biblioteka klas 77 Array 77 Object 80 File 81 Podsumowanie 82 Część II Rails 9 Rozdział 12. Wprowadzenie do Rails 85 Rozdział 13. Rails — instalacja 87 Rails 87 XAMPP 88 Podsumowanie 92 Rozdział 14. Pierwsza aplikacja 93 Przypomnienie 93 Drzewo projektu 94 WEBrick 96 Witaj świecie 97 Znaczniki 99 Podsumowanie 102 Rozdział 15. Active Record 103 Przygotowanie środowiska 103 Przepisy kulinarne 106 Zmiana wyglądu 108 Kategorie 111 Podsumowanie 114 Rozdział 16. Action Controller 115 Routing 115 Generowanie URL 118 Metody akcji 120 Środowisko kontrolera 121 Generowanie szablonów 122 Wysyłanie danych 122 Ciasteczka 123 Flash — komunikacja pomiędzy metodami 124 Filtry 125 Podsumowanie 126
  • 5. 6 Ruby on Rails • Ćwiczenia Rozdział 17. Action View 127 Szablony RHTML 127 Helpers — wsparcie pomocników 130 Formatowanie 133 Odnośniki 136 Stronicowanie 137 Elementy formularzy 138 Podsumowanie 140 Rozdział 18. Action Mailer 141 Wysyłanie poczty 141 Odbieranie poczty 147 Podsumowanie 149 Rozdział 19. Web 2.0 151 link_to_remote 151 observe_field 154 periodically_call_remote 155 Podsumowanie 157 Rozdział 20. Bezpieczeństwo 159 SQL Injection 159 CSS/XSS 161 Formularze 162 Publiczne metody kontrolerów 163 Upload plików 164 Podsumowanie 164 Rozdział 21. Zakończenie 165 Część III Dodatki 167 Dodatek A Projekt — TimeTracker 169 Przygotowanie 169 Wersja SQLite 170 Wersja MySQL 172 Opis działania 174 Opis budowy 178 Podsumowanie 186
  • 6. Zazwyczaj rozpoczynając przygodę z jakimkolwiek językiem programowania, pierwszą aplikacją, która wychodzi spod naszych rąk, jest znane wszystkim „Witaj świecie”. Tak też będzie w tym przypadku. Ć W I C Z E N I E 14.1 Pierwsza aplikacja Aby stworzyć pierwszą aplikację: 1. Uruchom edytor tekstowy. 2. Zapisz poniższy kod źródłowy do nowego pliku. class Osoba @@ilosc = 0 def initialize(imie, nazwisko, wiek) @imie = imie @nazwisko = nazwisko @wiek = wiek @@ilosc += 1 end def przywitaj_sie puts "Nazywam sie #{@imie} #{@nazwisko}." puts "Mam #{@wiek} lat." end
  • 7. 94 Część II • Rails def Osoba.ile_osob puts "Utworzono #{@@ilosc} osob!" end end pracownik_1 = Osoba.new("Michal", "Sobczak", 19) pracownik_1.przywitaj_sie Osoba.ile_osob 3. Zapisz plik i wykonaj go w interpreterze języka Ruby. Wpisz w wierszu poleceń ruby <nazwa pliku>. W powyższym przykładzie utworzyliśmy klasę Osoba. Ponadto zdefi- niowaliśmy trzy metody. Pierwsza z nich to metoda inicjalizacji obiektu danej klasy. Druga to metoda przywitaj_sie, która jest odpo- wiedzialna za wyświetlenie na ekranie podanego tekstu w postaci imienia, nazwiska oraz wieku. Ostatnia z nich wyświetla liczbę utwo- rzonych do tej pory obiektów klasy Osoba. Za przechowywanie infor- macji o liczbie tych obiektów odpowiedzialna jest zmienna klasy no- sząca nazwę ilość. Przykład ten miał na celu przypomnienie składni języka. Mając za sobą wprowadzenie do środowiska oraz ogólny przegląd jego możli- wości w poprzednich rozdziałach, czas na zastosowanie naszej jak dotąd skromnej wiedzy w praktyce. Ć W I C Z E N I E 14.2 Utworzenie aplikacji wraz z drzewem projektu Aby utworzyć nową aplikację, a wraz z nią drzewo projektu: 1. Uruchom wiersz poleceń. 2. Wpisz polecenie rails <nazwa aplikacji> (rysunek 14.1). Rysunek 14.1. Utworzenie nowej aplikacji w Rails
  • 8. Rozdział 14. • Pierwsza aplikacja 95 Ć W I C Z E N I E 14.3 Przygotowanie środowiska pracy Zaczynając pracę z Rails, niezmiernie istotne jest, aby wybrać kata- log, w którym będziemy przechowywać nasze projekty. Ważne jest, żeby katalog ten znajdował się jak najwyżej w strukturze katalogów dysku twardego. 1. W wierszu poleceń wpisz mkdir <nazwa katalogu>, żeby utworzyć nowy katalog. 2. Do katalogu przechodzimy poleceniem cd <nazwa katalogu>. 3. Żeby wyświetlić wszystkie pliki oraz katalogi w katalogu, w którym znajdujemy się obecnie, używamy polecenia dir (rysunek 14.2). Rysunek 14.2. Drzewo projektu 4. Żeby wyświetlić to samo, ale rekursywnie, czyli wraz z zawartością podkatalogów, wpisujemy dir /S. Ć W I C Z E N I E 14.4 Obsługa wbudowanego w wiersz poleceń edytora tekstu Aby uruchomić wbudowany w wiersz poleceń edytor tekstu: 1. Uruchom wiersz poleceń.
  • 9. 96 Część II • Rails 2. Edytor uruchamiamy poleceniem edit. Używając edytora edit, możemy poruszać się pomiędzy poleceniami menu edytora na dwa sposoby — za pomocą myszy albo klawiatury. 3. Żeby dostać się do menu za pomocą klawiatury, używamy kombinacji klawiszy Alt+wiodąca litera menu. 4. Na przykład, aby dostać się do menu Plik, wybierzmy Alt+p. Kiedy naciśniemy klawisz Alt, podświetlone zostaną wiodące litery menu. Jeśli chcesz zapoznać się ze znaczeniem poszczególnych katalogów z drzewie projektu, sięgnij do dokumentacji Ruby on Rails, która znaj- duje się pod adresem http://www.rubyonrails.org/docs. Ć W I C Z E N I E 14.5 Uruchomienie serwera WEBrick Aby uruchomić serwer WEBrick: 1. Uruchom wiersz poleceń. 2. Aby uruchomić serwer WEBrick, wydajemy polecenie ruby scriptserver (rysunek 14.3). Rysunek 14.3. Uruchomienie serwera WEBrick
  • 10. Rozdział 14. • Pierwsza aplikacja 97 Kilka chwil wcześniej stworzyliśmy nowy projekt poleceniem rails <nazwa projektu> i w związku z tym mamy już całe drzewo aplikacji, które będzie dla nas szablonem do tworzenia w późniejszym czasie bardziej zaawansowanych aplikacji niż obecne „Witaj świecie”. Stwórzmy zatem aplikację, która będzie składała się z jednego kon- trolera oraz kilku metod. Do tej operacji będziemy potrzebowali pod- stawowej znajomości HTML i CSS1. Ć W I C Z E N I E 14.6 Utworzenie pierwszego kontrolera i widoku Aby utworzyć kontroler: 1. Uruchom wiersz poleceń. 2. Przejdź do katalogu z projektem, na przykład cd railstest. 3. Wykonaj polecenie ruby scriptgenerate controller WitajSwiecie, aby stworzyć nowy kontroler (rysunek 14.4). Rysunek 14.4. Utworzenie kontrolera WitajSwiecie 4. Przejdź do katalogu appcontrollers poleceniem cd appcontrollers. 5. Wykonaj polecenie dir w celu przejrzenia zawartości katalogu. W tym momencie widzimy dwa pliki: application.rb oraz witaj_swiecie_controller.rb. Są to kontrolery akcji. W tym przypadku najbardziej interesuje nas witaj_swiecie_controller.rb. 6. Edytuj plik witaj_swiecie_controller.rb (rysunek 14.5). 1 Kaskadowe arkusze stylów (ang. Cascading Style Sheets, CSS) jest to język służący do opisu sposobu generowania stron WWW — przyp. aut.
  • 11. 98 Część II • Rails Rysunek 14.5. Edytor gVim z otwartym plikiem kontrolera WitajSwiecie 7. Zapisz do pliku witaj_swiecie_controller.rb następujący kod: class WitajSwiecieController < ApplicationController def witaj end end 8. Otwórz przeglądarkę, na przykład Internet Explorer, i wpisz: http://12httttt1:2ttt/witaj_swiecie (rysunek 14.6). Rysunek 14.6. Nieznana akcja (unknown action) 9. Po wpisaniu http://12httttt1:2ttt/witaj_swiecie/witaj otrzymamy błąd innego rodzaju. Poprzedni mówi nam, że wprawdzie mamy taki kontroler, ale nie mamy żadnej akcji z nim związanej. Z tego powodu musimy stworzyć widok dla kontrolera, żeby mógł się wyświetlić (rysunek 14.7). Rysunek 14.7. Brak szablonu (template is missing) 10. cd ttviews oraz cd witaj_swiecie. 11. Stwórz plik szablonu o nazwie, jaką posiada metoda w kontrolerze WitajSwiecie, czyli witaj.rhtml: <html> <head> <title>Witaj swiecie!</title> <style type="text/css"> table.tabela {font-weight:bold;} div {text-align:center;} </style>
  • 12. Rozdział 14. • Pierwsza aplikacja 99 </head> <body> <h1>Witaj świecie!</h1> <div> <table class="tabela"> <tr><td>Witaj swiecie!</td></tr> </table> </div> </body> </html> 12. Teraz pod adresem http://127.0.0.1:3000/WitajSwiecie/witaj możesz zobaczyć swoją pierwszą działającą aplikację. Gratulacje! To jednak nie wszystko. 13. Edytuj plik witaj_swiecie_controller.rb. class WitajSwiecieController < ApplicationController def witaj 5.times do |@i| @i+=1 end end end 14. Edytuj plik witaj.rhtml. <table class="tabela"> <tr> <td>Witaj swiecie!</td> <td><%= @i %> </tr> </table> Wynikiem powyższych działań jest wyświetlenie liczby 5. Jak widać, kontrolery oraz widoki współpracują ze sobą, przekazując sobie na- wzajem wartości zmiennych. Znaczniki pozwalają na osadzanie instrukcji języka Ruby pomiędzy kodem w języku HTML.
  • 13. 100 Część II • Rails Ć W I C Z E N I E 14.7 Osadzanie znaczników Ruby w HTML Aby osadzić znaczniki języka Ruby stronie HTML, podążaj za poniż- szym opisem: 1. Wartości wyrażeń w plikach rhtml zapisujemy pomiędzy znacznikami <%= oraz %>. Wszystko pomiędzy nimi jest zamieniane na łańcuch znaków i wyświetlane w przeglądarce. Załóżmy, że stworzymy taką konstrukcję: <%= puts "Witaj!" %> 2. Zostanie to co prawda wyświetlone, ale nie tam, gdzie moglibyśmy się tego spodziewać. Pamiętamy okno wiersza poleceń, w którym uruchamialiśmy WEBrick? Jeśli użyjemy standardowego wyjścia dla danych, pojawią one się właśnie w konsoli z uruchomionym serwerem. <%= 1+< %> <%= "jeden" + "dwa" $> 3. Istnieje ponadto druga para znaczników <%, %>. Wszystko pomiędzy nim może być, tak jak w przypadku poprzedników, kodem źródłowych języka Ruby. Różnica polega na tym, że znacznik ten nie zamienia swojego wyjścia na łańcuch znaków i nie próbuje go wyświetlić. Znacznik ten jest najczęściej stosowany do iteracji oraz pętli i warunków wyświetlania kodu HTML. <% 3.times do %> Witaj!<br> <% end %> 4. Istnieje możliwość łączenia obu znaczników. <% 4.times do |i| %> <%= i %> <br> <% end %> 5. Na zakończenie czas stworzyć drugą metodę klasy kontrolera, stworzyć widok oraz połączyć obie strony odnośnikami. Edytuj plik witaj_swiecie_controller.rb. class WitajSwiecieController < ApplicationController def witaj 5.times do |@i| @i+=1 end end
  • 14. Rozdział 14. • Pierwsza aplikacja 101 def doZobaczenia end end 6. Edytuj plik widoku doZobaczenia.rhtml. <html> <head> <title>Do Zobaczenia!</title> </head> <body> Do zobaczenia! <br> <%= link_to "Witaj!", :action => "witaj" %> </body> </html> 7. Do pliku witaj.rhtml dodaj: <%= link_to "Do Zobaczenia!", :action => "doZobaczenia" %> 8. Obejrzyj wynik tego ćwiczenia w przeglądarce internetowej pod adresem http://127.0.0.1:3000/witaj_swiecie/witaj (rysunki 14.8 i 14.9). Rysunek 14.8. Pierwsza aplikacja Rysunek 14.9. Działanie odnośnika
  • 15. 102 Część II • Rails W rozdziale: q Przypomnieliśmy sobie składnię języka Ruby. q Utworzyliśmy szkielet aplikacji Rails. q Uruchomiliśmy serwer WEBrick. q Stworzyliśmy przykładowy kontroler oraz dwa widoki. q Dowiedzieliśmy się, jak wykorzystywać znaczniki osadzania kodu źródłowego języka Ruby pomiędzy kodem HTML. q Połączyliśmy dwie strony odsyłaczami.