railsspace. tworzenie społecznościowych serwisów internetowych w ruby on rails cała książka, ebooki
[ Pobierz całość w formacie PDF ]
6
RAILSSPACE
2.4.
Układy ..................................................................................................... 47
2.4.1.
ERb, akcje i zmienne egzemplarza ...................................... 48
2.4.2.
Powtórka: podział strony ...................................................... 50
2.4.3.
Dodawanie nawigacji ............................................................ 50
2.4.4.
Tablice asocjacyjne ................................................................. 51
2.4.5.
Symbole ................................................................................... 52
2.4.6.
Dopracowywanie link_to ..................................................... 53
2.4.7.
Kwestia stylu ........................................................................... 54
2.4.8.
Dopracowywanie nawigacji ................................................. 55
2.4.9.
Znajdź coś dla siebie .............................................................. 55
2.5.
Programowanie ze stylem ................................................................... 56
Rozdział 3.
Modelowanie użytkowników ........................................................................ 61
3.1.
Tworzenie modelu User ....................................................................... 61
3.1.1.
Konfigurowanie bazy danych .............................................. 61
3.1.2.
Migracje i model User ........................................................... 64
3.1.3.
Pierwsza migracja użytkownika .......................................... 65
3.1.4.
Rake migracji .......................................................................... 66
3.2.
Walidacja modelu użytkownika ......................................................... 69
3.2.1.
Konsola .................................................................................... 70
3.2.2.
Prosta walidacja ...................................................................... 71
3.2.3.
Walidacje w akcji .................................................................... 75
3.2.4.
Poprawianie walidacji ........................................................... 75
3.2.5.
Porządne walidacje ................................................................ 77
3.2.6.
Magiczne kolumny ................................................................ 80
3.3.
Dalsze kroki w celu zapewnienia integralności danych (?) ........... 82
Rozdział 4.
Rejestrowanie użytkowników ....................................................................... 85
4.1.
Kontroler User ....................................................................................... 85
4.2.
Rejestracja użytkownika — widok ..................................................... 86
4.2.1.
Widok rejestracji — wygląd ................................................. 87
4.2.2.
Omówienie widoku rejestracji ............................................. 91
4.2.3.
Poprawianie formularza rejestracji ..................................... 93
4.2.4.
Zabawa z formularzami i funkcją debug ........................... 95
4.3.
Rejestracja użytkownika — akcja ....................................................... 97
4.3.1.
Komunikaty o błędach formularza ................................... 103
4.3.2.
Flash ....................................................................................... 108
4.3.3.
Ukończona funkcja register ................................................ 110
4.3.4.
Zarys głównej strony użytkownika .................................. 111
4.4.
Dołączanie rejestracji .......................................................................... 113
4.4.1.
Pliki pomocnicze .................................................................. 115
4.5.
Przykładowy użytkownik .................................................................. 118
Rozdział 5.
Rozpoczynamy testowanie ........................................................................... 119
5.1.
Nasza filozofia testowania ................................................................. 120
5.2.
Konfiguracja testowej bazy danych ................................................. 120
SPIS TREŚCI
7
5.3.
Testowanie kontrolera Site ................................................................ 121
5.3.1.
Niebanalny test ..................................................................... 122
5.3.2.
Nadmiar testów? .................................................................. 125
5.4.
Testowanie rejestracji ......................................................................... 126
5.4.1.
Uruchamianie testów funkcjonalnych ............................. 126
5.4.2.
Podstawowe testy rejestracji .............................................. 126
5.4.3.
Testowanie rejestracji zakończonej powodzeniem ........ 129
5.4.4.
Testowanie rejestracji
zakończonej niepowodzeniem .......................................... 130
5.4.5.
Uruchamianie testów .......................................................... 133
5.4.6.
Więcej testów rejestracji? .................................................... 133
5.5.
Podstawowe testy modelu User ....................................................... 133
5.5.1.
Podstawowe testy walidacji ............................................... 135
5.6.
Szczegółowe testy modelu User ....................................................... 137
5.6.1.
Testowanie niepowtarzalności .......................................... 138
5.6.2.
Testowanie długości pseudonimu .................................... 139
5.6.3.
Skorzystaj z konsoli ............................................................. 140
5.6.4.
Testowanie długości hasła .................................................. 142
5.6.5.
Testowanie wyrażeń regularnych ..................................... 144
5.6.6.
Uruchamianie wszystkich testów ...................................... 151
Rozdział 6.
Logowanie i wylogowywanie ...................................................................... 153
6.1. Utrzymywanie stanu za pomocą sesji ............................................. 154
6.1.1. Konfigurowanie sesji bazodanowych ............................... 154
6.2. Logowanie ............................................................................................ 156
6.2.1. Rejestrowanie stanu zalogowania ..................................... 156
6.2.2. Logowanie po zarejestrowaniu ......................................... 156
6.2.3. Debugowanie ze zmienną sesji .......................................... 157
6.2.4. Widok i akcja logowania ..................................................... 162
6.2.5. Testowanie poprawnego logowania ................................. 165
6.2.6. Testowanie nieprawidłowego logowania ........................ 167
6.3. Wylogowanie ....................................................................................... 168
6.3.1. Testowanie wylogowania ................................................... 169
6.3.2. Testowanie nawigacji .......................................................... 170
6.4. Ochrona stron ...................................................................................... 173
6.4.1. Chronienie stron w głupi sposób ...................................... 173
6.4.2. Chronienie stron w mądry sposób .................................... 173
6.4.3. Testowanie chronienia ........................................................ 176
6.5. Przyjazne przekazywanie URL .............................................................. 178
6.5.1.
Zmienna request .................................................................. 178
6.5.2.
Przyjazne przekierowywanie po zalogowaniu ............... 181
6.5.3.
Przyjazne przekierowywanie po rejestracji ..................... 183
6.5.4.
Przyjazne testowanie ........................................................... 184
8
RAILSSPACE
6.6.
Refaktoryzacja podstawowego logowania ..................................... 185
6.6.1.
Zalogowany? ......................................................................... 186
6.6.2.
Zaloguj! .................................................................................. 190
6.6.3.
Wyloguj! ................................................................................ 193
6.6.4.
Wyczyść hasło! ...................................................................... 194
6.6.5.
Obsługa formularza bez powtórzeń ................................. 197
6.6.6.
Przyjazne przekierowania bez powtórzeń ...................... 198
6.6.7.
Sprawdzamy poprawność .................................................. 200
Rozdział 7.
Zaawansowane logowanie ............................................................................ 201
7.1.
A więc chcesz być zapamiętany? ...................................................... 201
7.1.1.
Pole opcji „zapamiętaj mnie” ............................................. 202
7.1.2.
Atrybut „pamiętaj mnie” ..................................................... 205
7.1.3.
Cookie „pamiętaj mnie” ...................................................... 206
7.2.
Faktyczne zapamiętywanie użytkownika ....................................... 213
7.2.1.
Cookie uwierzytelniające .................................................... 214
7.2.2.
Pamiętanie, że zapamiętaliśmy .......................................... 216
7.2.3.
Aktualizacja logout .............................................................. 218
7.2.4.
Bardziej bezpieczny plik cookie ........................................ 220
7.2.5.
Ukończone (?) funkcje ......................................................... 222
7.3.
Testy zapamiętywania użytkowników ............................................ 224
7.3.1.
Poprawione testy logowania .............................................. 224
7.3.2.
Poprawiona funkcja wylogowania ................................... 230
7.4.
Testy zaawansowane — testowanie integracji ............................... 230
7.4.1.
Testowanie pamiętania cookie — pierwsze cięcie .......... 231
7.4.2.
Testowanie testu — opowieść ku przestrodze ................ 233
7.4.3.
Kilka refleksji dotyczących testowania w Rails ............... 235
7.5.
Ponowna refaktoryzacja .................................................................... 235
7.5.1.
Refaktoryzacja remember ................................................... 236
7.5.2.
Refaktoryzacja forget ........................................................... 239
7.5.3.
Jeszcze dwie poprawki ........................................................ 240
7.5.4.
W pełni zrefaktoryzowana funkcja login ......................... 241
7.5.5.
Kilka końcowych przemyśleń ............................................ 244
Rozdział 8.
Aktualizacja informacji użytkownika ........................................................ 245
8.1.
Sensowniejsza strona centrum użytkownika ................................. 246
8.2.
Aktualizacja adresu e-mail ................................................................. 246
8.3.
Aktualizacja hasła ................................................................................ 248
8.3.1.
Obsługa przesyłania haseł .................................................. 253
8.4.
Testowanie edycji informacji o użytkownikach ............................ 257
8.4.1.
Funkcje pomocnicze dla testów ......................................... 259
8.4.2.
Testowanie strony edycji .................................................... 262
8.4.3.
Zaawansowany test ............................................................. 263
SPIS TREŚCI
9
8.5.
Części ..................................................................................................... 266
8.5.1.
Dwie proste części ................................................................ 266
8.5.2.
Bardziej zaawansowany plik części .................................. 267
8.5.3.
Problem, a później koniec ................................................... 270
8.5.4.
Aktualizacja akcji login i register ....................................... 271
Część II
Tworzenie sieci społecznościowej ................................... 275
Rozdział 9.
Profile osobiste ................................................................................................ 277
9.1.
Zaczątek profilu użytkownika .......................................................... 277
9.1.1.
Adresy URL profilów ........................................................... 278
9.1.2.
Kontroler i akcje profilu ...................................................... 280
9.2.
Specyfikacja użytkownika ................................................................. 282
9.2.1. Generowanie modelu Spec ................................................ 282
9.2.2. Model Spec ............................................................................ 284
9.2.3. Łączenie modeli .................................................................... 286
9.3.
Edycja specyfikacji użytkownika ...................................................... 288
9.3.1.
Kontroler Spec ...................................................................... 288
9.3.2.
Narzędzie dla HTML ........................................................... 290
9.3.3.
Widok edycji specyfikacji ................................................... 292
9.3.4.
Ochrona specyfikacji ........................................................... 293
9.3.5.
Testowanie specyfikacji ...................................................... 295
9.4.
Aktualizacja centrum użytkownika ................................................. 299
9.4.1.
Nowy widok centrum użytkownika ................................. 300
9.4.2.
Pole specyfikacji ................................................................... 303
9.4.3.
Trasy nazwane i adres URL profilu .................................. 305
9.4.4.
Główna zawartość centrum użytkownika ....................... 307
9.5.
Osobisty FAQ — zainteresowania i osobowość ............................. 310
9.5.1.
Model FAQ ............................................................................ 311
9.5.2.
Kontroler FAQ ...................................................................... 314
9.5.3.
Edycja FAQ ........................................................................... 315
9.5.4.
Dodawanie FAQ do centrum użytkownika .................... 317
9.5.5.
Testy FAQ .............................................................................. 320
9.6.
Upublicznianie profilu ....................................................................... 322
Rozdział 10.
Społeczność ..................................................................................................... 325
10.1. Tworzenie społeczności (kontroler) ................................................. 325
10.2. Wprowadzanie przykładowych użytkowników ........................... 326
10.2.1. Zbieranie danych ................................................................. 327
10.2.2. Ładowanie danych .............................................................. 328
10.3. Spis członków społeczności ............................................................... 330
10.3.1. Nowy trik funkcji find ......................................................... 331
10.3.2. Akcja index ............................................................................ 334
10.3.3. Spis alfabetyczny .................................................................. 336
10.3.4. Wyświetlanie wyników indeksu ....................................... 338
[ Pobierz całość w formacie PDF ]