ruby on rails. wprowadzenie. wydanie ii ebook.pdf
(
6734 KB
)
Pobierz
4.
Relacje w Active Record .............................................................................................. 61
belongs_to
61
has_many
64
has_one
66
has_and_belongs_to_many
67
acts_as_list
70
Drzewa
72
O czym nie powiedzieliśmy
75
Wybiegając w przyszłość
76
5.
Rozbudowywanie widoków ....................................................................................... 77
Obraz całości
77
Oglądanie rzeczywistych fotografii
79
Szablony widoków
79
Określanie domyślnej strony głównej
84
Arkusze stylów
85
Hierarchiczne kategorie
88
Określanie stylów dla pokazów slajdów
93
6.
Ajax .............................................................................................................................. 99
W jaki sposób Rails implementuje Ajax
99
Odtwarzanie pokazów slajdów
100
Zmienianie porządku slajdów metodą przeciągnij i upuść
103
Przeciąganie i upuszczanie wszystkiego (lub prawie wszystkiego)
107
Filtrowanie według kategorii
114
7.
Testowanie ................................................................................................................. 119
Słowo wprowadzenia
119
Mechanizm Test::Unit języka Ruby
120
Testowanie w środowisku Rails
123
Asercje i testy integracyjne
140
Podsumowując
142
A
Instalowanie Rails ..................................................................................................... 145
B
Krótki leksykon Rails .................................................................................................. 151
Skorowidz ............................................................................................................................. 183
4
|
Spis treści
ROZDZIAŁ 2.
Rusztowania, REST i ścieżki
Przez stulecia rusztowania pomagały budowniczym w budowie i wykańczaniu wznoszonych
budynków. Programiści również korzystają z tymczasowego kodu rusztowania tworzącego
wstępne ramy i podstawowy mechanizm aplikacji do czasu, aż gotowy będzie właściwy kod
aplikacji. Rails automatyzuje proces tworzenia rusztowań bardzo ułatwiając budowanie apli-
kacji we wstępnej fazie.
W rozdziale 1. pokazaliśmy, jak Rails wykorzystuje tablicę z parametrami do przekształcenia
prostego wywołania Rails w wywołanie akcji w kontrolerze. Zbudowaliśmy w nim również
bardzo proste widoki. W tym rozdziale rozpoczniemy budowę bardziej zaawansowanej apli-
kacji, o nazwie Photo Share, która będzie mogła być użyta do zarządzania fotografiami. Za-
stosujemy rusztowania do zbudowania podstawowego szablonu zawierającego model korzy-
stający z bazy danych, kontroler oraz widok. Niejako przy okazji przedstawimy podstawy
kilku najważniejszych funkcji Rails, takich jak:
•
Migracje
.
Ta funkcja obsługi bazy danych pomaga programistom w wieloetapowym two-
rzeniu modelu bazy danych, zarządzaniu różnicami w schematach używanych we wszyst-
kich naszych środowiskach. Migracje korzystają z kodu Ruby zamiast kodu SQL specy-
ficznego dla bazy danych.
•
REST oraz zasoby
.
Rails korzysta intensywnie ze stylu komunikacji internetowej o nazwie
REST, czyli Representational State Transfer. Taka strategia komunikacji wykorzystującej
HTTP definiuje zasoby internetowe, w których każde polecenie URL lub HTTP wykonu-
je jedną z operacji CRUD (
Create
,
Read
,
Update
,
Delete
— tworzenie, odczyt, modyfikacja
i usuwanie) na zasobie. W Rails 2 każdy kontroler jest zasobem REST.
•
Ścieżki nazwane
.
Dla każdego zasobu Rails tworzy ścieżki nazwane, które odwzorowują
standaryzowane
, eleganckie adresy URL na predefiniowane akcje kontrolera. W wyniku
tego potrzeba mniej kodu i uzyskujemy lepszą spójność pomiędzy naszymi aplikacjami.
Przyjrzyjmy się dokładniej aplikacji Photo Share. Następnie szybko zbudujemy podstawy tej
aplikacji. Na koniec tego rozdziału będziemy mieli prostą aplikację pozwalającą zarządzać
zdjęciami, pokazami slajdów, slajdami i kategoriami.
Wprowadzenie do Photo Share
W dalszej części tej książki będziemy tworzyć jedną aplikację o nazwie Photo Share, umożli-
wiającą wymianę zdjęć pomiędzy jej użytkownikami. Aplikacja ta będzie korzystała z bazy da-
nych. Rozpoczniemy od poniższych prostych wymagań nazywanych
scenariuszami użytkownika
:
25
•
Umieszczanie zbioru zdjęć w sieci WWW w taki sposób, aby inni użytkownicy mogli je
zobaczyć.
•
Organizowanie zdjęć w kategoriach.
•
Tworzenie i przeglądanie pokazów slajdów budowanych z dostępnych zdjęć.
Każde z tych wymagań odnosi się do innej części aplikacji. Przyjrzyjmy się dokładniej elemen-
tom Rails wymaganych przez te scenariusze.
Definiowanie zasobów
Gdy analizujemy naszą aplikację, najlepiej na początku myśleć o niej jak o zasobach. Rails 2
jest środowiskiem tworzenia oprogramowania ukierunkowanym na zasoby, więc tworzenie
zwykle rozpoczyna się od zdefiniowania zasobów. Praktycznie rzecz ujmując, zasób jest jed-
nostką internetową, która posiada metody do reprezentowana tej jednostki i zarządzania nią.
Mówiąc jeszcze praktyczniej, typowy zasób Rails jest modelem korzystającym z bazy danych,
kontrolerem zarządzającym tym modelem oraz widokiem, który prezentuje jeden lub więcej
modeli naszym użytkownikom. Po zdefiniowaniu wymagań wstępnych następnym zadaniem
jest określenie zasobów wymaganych przez naszą aplikację. Spójrzmy na listę scenariuszy
i skoncentrujmy się na rzeczownikach. Kilkoma oczywistymi kandydatami na zasoby Rails
są
zdjęcia
,
slajdy
,
pokazy slajdów
oraz
kategorie
. Ujawniają się również niektóre relacje pomię-
dzy nimi:
•
Kategoria
zawiera wiele
zdjęć
, a
zdjęcie
może mieć jedną lub więcej
kategorii
.
•
Kategoria
może mieć inną
kategorię
.
•
Pokaz slajdów
zawiera wiele
slajdów
.
•
Slajd
zawiera jedno
zdjęcie
.
Prosty diagram, taki jak na rysunku 2.1, pomaga pokazać zasoby aplikacji oraz relacje między
nimi. W przypadku relacji „jeden do wielu” korzystamy ze strzałki oznaczającej
należy do
, więc
wskazuje ona od strony „jeden do wielu”. Strzałka dwukierunkowa wskazuje relację „wiele
do wielu”, natomiast linie bez strzałek — relacje „jeden do jednego”. Będziemy korzystać
z drzewa ze strzałkami wskazującymi na klasę nadawcy. Później skorzystamy z Active Record
do definiowania relacji, ale w tym rozdziale utworzymy bardzo prosty model niezawierający
zaawansowanych funkcji. Aby jednak wykonać cokolwiek w Active Record, musimy zdefinio-
wać bazę danych.
Rysunek 2.1. Rusztowania generujące wszystkie cztery widoki
26
|
Rozdział 2. Rusztowania, REST i ścieżki
Przygotowanie projektu i bazy danych
Zanim będziemy mogli cokolwiek zrobić, będziemy potrzebować projektu Rails. Tworzymy
go przez wpisanie
rails photos
, a następnie przechodzimy do nowego katalogu za pomocą
cd photos
. W konsoli zobaczymy następujący wynik (skrócony) — wynik ten może być róż-
ny w zależności od wykorzystywanej wersji.
$ rails photos
create
create app/controllers
create app/helpers
create app/models
...
create config/database.yml
create config/routes.rb
...
$ cd photos/
Jeżeli serwer nie jest uruchomiony, należy go uruchomić ponownie za pomocą
script/server
.
Aby upewnić się, że wszystko działa prawidłowo, należy otworzyć w przeglądarce stronę
http://localhost:3000/
. Jeżeli wszystko jest w porządku, zobaczymy stronę powitalną Rails.
Przyjrzyjmy się dokładniej plikom, jakie Rails utworzył dla nowego projektu. Warto zauwa-
żyć, że Rails utworzył plik konfiguracyjny bazy danych o nazwie
database.yml
. Od Rails 2
w domyślnym pliku konfiguracyjnym wykorzystywana jest lekka baza danych
sqlite3
. Można
skorzystać z tego silnika bazy danych lub innego, takiego jak MySQL. W tej książce będziemy
korzystać z sqlite3. Jeżeli jednak zdecydujesz się korzystać z MySQL, będziesz musiał zain-
stalować silnik bazy danych i zmienić plik
config/database.yml
, aby odpowiadał konfiguracji
bazy danych. Powinien on wyglądać podobnie do przedstawionego poniżej:
development:
adapter: mysql
database: photos_development
username: root
password:
host: localhost
test:
adapter: mysql
database: photos_development
username: root
password:
host: localhost
Jeżeli zdecydujesz się korzystać z MySQL lub zmienić w jakikolwiek sposób plik
database.yml
,
pamiętaj, że w języku definicji danych YAML odstępy są znaczące. Wcięcia muszą być wyko-
nywane za pomocą dwóch spacji (nie tabulatorów) i w żadnym wierszu nie może być spacji
na końcu. Szczegółowe wskazówki na temat sposobu utworzenia dwóch baz danych,
photos_
development
i
photos_test
, można znaleźć w dokumentacji MySQL. Można również użyć stan-
dardowej bazy i skorzystać z domyślnej konfiguracji.
W czasie życia projektu korzystamy z osobnych środowisk z oddzielnymi bazami danych, co
pozwala nam na obsługę programowania, testowanie i instalowanie w środowisku produk-
cyjnym. Rails ma własną strategię obsługi danych testowych, która zakłada
usuwanie wszyst-
kich danych przed kolejnym uruchomieniem testów
. Więcej informacji na ten temat w dalszej czę-
ści rozdziału. Na razie wystarczy wiedzieć, że nie powinniśmy tworzyć konfiguracji tak, aby
testowa baza danych wskazywała na bazę, której dane należy zachować!
Przygotowanie projektu i bazy danych
|
27
Plik z chomika:
mocnyonion
Inne pliki z tego folderu:
inteligencja społeczna. nowa nauka sukcesu cała książka.pdf
(5928 KB)
po prostu excel 2003 pl pełna wersja.pdf
(62637 KB)
bios. leksykon kieszonkowy. wydanie iii cała książka.pdf
(4035 KB)
marketing-spolecznosciowy.-tajniki-skutecznej-promocji-w-social-media helion.pdf
(9825 KB)
linux.-komendy-i-polecenia.-praktyczne-przyklady full version.pdf
(6497 KB)
Inne foldery tego chomika:
ADIOBOOK
ADIOBOOK 2
Aleksander Dumas
Alfred Szklarski
Alistair MacLean
Zgłoś jeśli
naruszono regulamin