1
00:00:00,240 --> 00:00:01,050
Witamy spowrotem.

2
00:00:01,260 --> 00:00:02,870
Więc jesteśmy zbierając którym skończyliśmy.

3
00:00:02,880 --> 00:00:07,390
Omówiliśmy indeks omówiliśmy tworzenie nowych Omówiliśmy show.

4
00:00:07,500 --> 00:00:12,300
Teraz robimy edytować i aktualizować i będę z góry z tobą w mojej opinii.

5
00:00:12,330 --> 00:00:27,410
Te dwa są najbardziej praca i to dlatego, że jeśli myślisz o tym, co rzeczywiście dokonuje aktualizacji slash to rodzaj hybrydy pomiędzy nowymi i stworzyć i pokazać, gdzie nowa-stworzyć można po prostu stworzyć nowego psa za każdym razem, czy nowy blog na niego.

6
00:00:27,410 --> 00:00:30,810
Aktualizacja trzeba najpierw znaleźć starą a następnie zaktualizować go.

7
00:00:30,990 --> 00:00:32,060
Tak rozpocznie się z nim.

8
00:00:32,190 --> 00:00:37,030
Który jest psy slash slash slash identyfikatora EDID który pokazuje cztery.

9
00:00:37,410 --> 00:00:38,850
Warto więc nie zacząć.

10
00:00:38,850 --> 00:00:41,990
Zanim to zrobimy, że ja po prostu podkreślić niektóre z rzeczy, które trzeba o tym mówić.

11
00:00:42,330 --> 00:00:52,200
I to napisał on tworzyć formę aktualizacji zmiana trasy i coś, co nazywa metoda obejścia której mogę, ale jest to miły mały problem, który mamy do czynienia.

12
00:00:52,230 --> 00:00:53,920
Więc zacznijmy od trasy edycji.

13
00:00:54,220 --> 00:01:05,650
I rzeczywiście tak po prostu mam blogi slash slash ID ukośnik na niego.

14
00:01:05,910 --> 00:01:19,880
Nie idziemy na nasze żądanie oddzwonienia i odpowiedzi i wszystko, co musimy zrobić, aby rozpocząć tutaj jest odpowiedź dostał renderować formularz edycji, która jeszcze nie istnieje.

15
00:01:19,920 --> 00:01:20,620
Wspaniały.

16
00:01:20,640 --> 00:01:22,550
Teraz stwórzmy tego formularza.

17
00:01:22,620 --> 00:01:25,320
Więc dotykać użycia ukośnika na niego.

18
00:01:25,500 --> 00:01:26,300
Tak.

19
00:01:26,760 --> 00:01:29,700
A następnie otworzyć go w górę.

20
00:01:31,080 --> 00:01:38,670
Zacznijmy ładny i prosty, z tylko strony H1 i upewnij się, że widzimy.

21
00:01:38,670 --> 00:01:47,070
Więc zacznij węzeł serwera na J s i tam dostać.

22
00:01:47,140 --> 00:01:54,700
Bierzesz któregokolwiek z nich i dodać na ukośnik na to i to może być tylko coś takiego, że nie musi być ważny dowód tożsamości.

23
00:01:54,780 --> 00:01:56,690
Wciąż widzimy stronę edycji.

24
00:01:56,880 --> 00:01:57,870
Wspaniały.

25
00:01:57,880 --> 00:02:03,320
Teraz dostać to i zrobić, że możemy po prostu przyjąć postać od nowa.

26
00:02:03,540 --> 00:02:09,160
Więc jestem naprawdę zamiar skopiować wszystko z tej strony, a następnie w ciągu będziemy aktualizować kilka rzeczy.

27
00:02:09,180 --> 00:02:11,570
Pierwszy z nich to zamiast nowego bloga.

28
00:02:11,690 --> 00:02:13,580
Będę go zmienić do dodania.

29
00:02:14,490 --> 00:02:18,240
Musimy też zmienić ten post gdzie idzie i gdzie forma idzie.

30
00:02:18,240 --> 00:02:19,920
Więc to nie jest slash blogi już.

31
00:02:20,100 --> 00:02:26,660
Musimy wysłać to do szlaku aktualizacji, która jest Douga ukośnik ID, ale nie mamy tutaj jeszcze identyfikatora.

32
00:02:26,700 --> 00:02:35,910
Musimy szukać go najpierw w szablonie więc będę go pozostawić jako sashed blogi teraz i Zostawię methodis pisać, jak również i zostawimy wszystko inne, jak to jest, aby rozpocząć.

33
00:02:36,000 --> 00:02:46,350
Upewnijmy się, że kiedy otwieramy się to widzimy piękny postać, która mówi o tym, a my go dalej, że są dwie cechy, które są ze sobą powiązane.

34
00:02:46,440 --> 00:02:47,970
Zasadniczo będziemy mieć ich obu za darmo.

35
00:02:47,970 --> 00:02:51,470
Dzięki temu jedno te dwie cechy są jednym.

36
00:02:51,540 --> 00:02:56,710
Musimy formularz do przedstawienia prawidłowego Ci Arel czyli blogi slash slash ID.

37
00:02:56,760 --> 00:02:58,600
Więc musimy tego ID.

38
00:02:58,680 --> 00:03:02,290
Inną rzeczą jest to, że chcemy, aby ta forma mają być napełnione z danymi.

39
00:03:02,610 --> 00:03:10,590
W przeciwnym razie nie jesteś naprawdę edycji lub po prostu wpisując rzeczy na tak powinno pokazać tytuł blogu, że jestem edycji obrazu i treści.

40
00:03:10,590 --> 00:03:16,400
Oba te wymagają od nas najpierw przyjrzeć się rzeczywistej blog wewnątrz naszej edycji trasy.

41
00:03:16,950 --> 00:03:26,070
Więc to, co mówię coś w rodzaju kombinacji nowe i koncert bo musimy najpierw użyć tego identyfikatora, aby znaleźć właściwą blok.

42
00:03:26,190 --> 00:03:52,530
Więc podobnie jak pokazać jej blogu się znaleźć, id i identyfikator jest wniosek, że parametr ID to mamy nasz oddzwaniania nazywa ten znalazł dziennik ponownie jeśli wystąpi błąd Zróbmy nasz sama redstart przekierować ciąć blogów innego odpoczynku, które czynią z niego.

43
00:03:52,590 --> 00:04:00,980
Poza mamy zamiar przekazać w trochę danych i że będą się zalogować jest równa znalezionego blogu.

44
00:04:01,560 --> 00:04:02,600
Idealny.

45
00:04:02,610 --> 00:04:04,560
Teraz mamy bloga w naszym szablonie.

46
00:04:04,620 --> 00:04:06,070
Wszystko poszło dobrze.

47
00:04:06,120 --> 00:04:14,710
Więc jej wnętrzu zacznijmy proste mówiąc edytować, a następnie umieścić tytuł tutaj tak, że będzie po prostu zalogować.

48
00:04:14,740 --> 00:04:23,680
Tytuł jest Ejay nas, jeśli odświeżyć teraz będziemy musieli zrestartować odśwież stronę.

49
00:04:24,450 --> 00:04:34,420
Właściwie ten straszny przykład dlatego, że nie mamy tytuł, więc niech wybrać jeden z pierwszych z nich jak ten pierwszy post tutaj lub przejdź do slash na niego.

50
00:04:34,680 --> 00:04:36,750
Widzimy, że pierwszy post.

51
00:04:36,810 --> 00:04:37,520
Wspaniały.

52
00:04:37,950 --> 00:04:40,570
Więc teraz musimy dodać w danych do formularza.

53
00:04:40,740 --> 00:04:42,220
I to jest również bardzo proste.

54
00:04:42,360 --> 00:04:49,290
Pamiętaj, że określenie wartości formie co jest w środku wejścia przy użyciu atrybutu value.

55
00:04:49,500 --> 00:04:56,920
Więc zamiast zastępczy chcemy wartość i możemy zacząć po prostu mówiąc, wartość jest równa niska.

56
00:04:57,150 --> 00:05:02,470
A ja pokażę ci, co skończy się tam to jest napełnione z niskim.

57
00:05:02,830 --> 00:05:10,010
Tak oczywiście nie chcemy Witam chcemy zmiennej i wartość chcemy, nie jest po prostu blogu, że tytuł.

58
00:05:10,270 --> 00:05:23,350
Więc uruchomić nasz skrypt, aby uzyskać tytuł, a następnie umieścić na blogu, że wewnątrz tej wartości, a my zrobimy to samo z wyjątkiem obrazu blogu, że obraz.

59
00:05:23,590 --> 00:05:24,090
Sprawdź to.

60
00:05:24,090 --> 00:05:40,390
Teraz, jeśli są świeże Mamy tytuł i obraz wstępnie wypełniony obszar tekstowy jest trochę inna faktura nie mają atrybutu value zamiast co jest pomiędzy znacznikami wewnętrzna treść jest tym, co jest fabrycznie napełniony.

61
00:05:40,390 --> 00:05:41,760
Więc to naprawdę prostsze.

62
00:05:42,000 --> 00:05:52,150
Wszystko, co musimy zrobić, to skopiować ten ogromny Tak w między tagami i zrobić blogu na odświeżenie ciała.

63
00:05:52,380 --> 00:05:54,470
Widać teraz mamy blogu.

64
00:05:54,820 --> 00:05:58,810
Jeśli więc dodaliśmy więcej danych to obecnie aktualizowany.

65
00:05:59,440 --> 00:06:00,390
I hit przedstawienia.

66
00:06:00,430 --> 00:06:04,490
Nadal mamy problem, który jest, że ta forma nie idzie we właściwym miejscu.

67
00:06:04,540 --> 00:06:06,980
Teraz musimy skupić się na trasie aktualizacji.

68
00:06:07,840 --> 00:06:12,780
Więc aktualizować sashed identyfikator psa ukośnik jako żądanie put.

69
00:06:12,820 --> 00:06:17,850
Więc zacznijmy w naszej aplikacji tak dodatek w trasie.

70
00:06:18,490 --> 00:06:22,250
Więc aktualizować trasy aplikacji kropkę.

71
00:06:22,510 --> 00:06:32,680
Tym razem jest to umieścić, ponieważ jest to wniosek pote i pamiętać, że cały sens HTP Wnioski te różne czasowniki jest tak naprawdę do rzeczy istotne.

72
00:06:32,680 --> 00:06:42,510
Czy Aby dodać podziały funkcjonalności tak, że jeśli widzimy tam prośba put my wiemy, że to ma być aktualizowanie coś, ale można zrobić wszystko z tylko żądania POST.

73
00:06:42,520 --> 00:07:11,800
Więc to nie brakło w ogóle, ale jeśli mamy następujące spokojny routing musimy zrobić żądanie PUT tak apt put a URL kłody slash slash ID prostu odświeżyć tu blogi pies sosh ID slash identyfikator, a my mają bardzo prostą rzecz, że tu po prostu odsyła czerwone kropki i aktualizacji okład.

74
00:07:12,010 --> 00:07:15,750
Wystarczy więc jeśli widzimy tę wiadomość Wiemy, że to będzie działać.

75
00:07:16,330 --> 00:07:32,610
A jeśli pójdę i teraz aktualizować naszą formę tak, że utrzymuje się we właściwym miejscu i trzeba iść do niego, jeśli zmieni się kłaść i zmienić to być blogi to musi być ukośnik ID, więc może po prostu umieścić tam niczego.

76
00:07:32,950 --> 00:07:35,930
Ale faktycznie tam umieścić identyfikator muszę.

77
00:07:36,040 --> 00:07:46,410
Tak samo jak to przedstawienie pisał blog kropka podkreślenia tożsamości i powiedzieć Teraz nienawidzę złamać go do ciebie, ale to przyzwyczajenie faktycznie pracują.

78
00:07:46,630 --> 00:07:54,020
Więc jeśli mogę przesłać ten nazwijmy to pierwszy post aktualizowane, dzięki czemu możemy je zobaczyć i kliknij przycisk Prześlij.

79
00:07:54,490 --> 00:08:04,340
Zobaczysz, że przenosi nas do strony show-i nie tylko nie zabrać go do strony show-ale dodaje wszystkie nasze dane formularzy do trasy pojawią.

80
00:08:04,340 --> 00:08:11,860
Więc nie wiem, czy można to przeczytać, ale mówi tytuł to pierwszy post zaktualizowany obraz jest zdjęcie, które są wokół.

81
00:08:11,980 --> 00:08:18,420
Więc wziął go danych formularza i umieścić je w tobie lub wiersza jako ciąg kwerendy, które pamiętają, co się dzieje podczas dokonywania żądania GET.

82
00:08:18,670 --> 00:08:19,890
Więc mamy problem.

83
00:08:20,110 --> 00:08:21,600
A problem sprowadza się do tego.

84
00:08:21,790 --> 00:08:27,410
Jeśli formy Tim nie obsługują żądania ich obsługują tylko żądania POST i GET teraz.

85
00:08:27,730 --> 00:08:32,820
A powodem, że jest to naprawdę trudne do uzyskania jasnej odpowiedzi na w jednym punkcie.

86
00:08:32,860 --> 00:08:38,980
To miał być uwzględnione jako część ilości form, które jesteśmy w stanie dokonać prośby i żądania usunięcia.

87
00:08:39,010 --> 00:08:41,980
A potem najwyraźniej uznał za zbyt trudne.

88
00:08:41,980 --> 00:08:43,200
Czytałem o tym.

89
00:08:43,210 --> 00:08:47,620
Podaję link w opisie tego filmu ale można o tym przeczytać.

90
00:08:47,620 --> 00:08:49,780
Nie ma jednoznacznych odpowiedzi.

91
00:08:49,780 --> 00:08:55,430
Jedynymi ludźmi Wnioski doszli do tej pory jest to, że zbyt późno, że nie je wprowadziły go.

92
00:08:55,570 --> 00:09:00,740
I jest to trochę zaskakujące, że nadal nie można wysłać do wprowadzenia żądania za pomocą formularza.

93
00:09:00,760 --> 00:09:03,200
Więc z tym powiedział, że jest obejście.

94
00:09:03,700 --> 00:09:07,900
I to gdzie ta mała linia przychodzi metoda sterowania.

95
00:09:08,140 --> 00:09:22,020
Więc jaka metoda obejścia Zróbmy to prosty pakiet instalujemy mówimy express go używać, a następnie udajemy się do naszej postaci i dodajemy trochę oszustwo gdzie wysłać żądanie POST.

96
00:09:22,360 --> 00:09:36,490
A tak przy okazji, gdy spróbujesz wysłać żądanie portu będzie domyślnie jako żądanie GET, który jest dlaczego tak się stało i dlatego zajęło nam do strony show-bo złożył wniosek do bloga ukośnik identyfikator, który jest nasz pokaz.

97
00:09:36,880 --> 00:09:37,180
OK.

98
00:09:37,180 --> 00:09:53,010
Więc jeśli zmienimy tylko zakładać i dodamy do tego trochę cittie rzecz na koniec naszego ty pytanie AREL znaku podkreślenia metoda równa się umieścić to wyśle ​​regularnej żądania plakat.

99
00:09:53,460 --> 00:10:00,770
Ale ma w zapytaniu metoda ciąg podkreślenia równa umieścić i metoda obejścia będzie go skonfigurować zamiast faktycznie tak.

100
00:10:00,870 --> 00:10:19,230
Tak, że wygląda na to sposobu podkreślenia i jeśli widzi podkreślenia metodę równego umieścić lub podkreślenia metodę równego usunięcia będzie traktować go jako umieścić zamówienie lub jako żądanie usunięcia i metody nazwy, aby zastąpić go pomija fakt, że jest to żądanie POST wiesz traktować go jako put lub cokolwiek określamy tutaj.

101
00:10:19,230 --> 00:10:28,500
Można określić żądanie GET lub usunąć które zrobimy w tylko trochę, ale teraz mamy zamiar iść z nim.

102
00:10:28,760 --> 00:10:31,860
Więc metoda podkreślenia równa put, która nie robi nic na własną rękę zrobić.

103
00:10:31,930 --> 00:10:33,450
To tylko łańcuch zapytania.

104
00:10:33,630 --> 00:10:34,360
Nic się nie zmienia.

105
00:10:34,360 --> 00:10:48,900
Quintel możemy to zrobić i PM zainstalowania metoda obejścia kreska kreska Zapisz natomiast będzie można się zastanawiać, czy warto przechodzenia przez cały ten wysiłek, ponieważ nie musimy tego robić.

106
00:10:48,900 --> 00:10:56,060
Pamiętaj, moglibyśmy po prostu inna trasa nazywa blogi aktualizacji i nie trzeba nic z tego.

107
00:10:56,070 --> 00:10:57,610
Możemy zrobić to żądania POST.

108
00:10:57,660 --> 00:10:59,910
To całkowicie zależy od nas do zdefiniowania własnych tras.

109
00:11:00,180 --> 00:11:04,640
Ale tak warto mieć tę konwencję mieć ten wzór, że idziemy.

110
00:11:04,830 --> 00:11:14,250
Chcemy, aby nasze żądania chcemy edytować każdą część, która zakładała w aktualizacji być put chcesz lub zniszczyć lub usunąć informacje się żądanie usunięcia.

111
00:11:14,250 --> 00:11:16,590
To tylko kwestia po wzór.

112
00:11:17,040 --> 00:11:20,230
OK, mamy to zrobić teraz w naszym Abdus.

113
00:11:20,310 --> 00:11:24,710
Wszystko co musimy zrobić, to wymaga metody ręcznego.

114
00:11:24,720 --> 00:11:26,260
Zrobię to tutaj.

115
00:11:26,310 --> 00:11:41,750
Sposób obejścia równa wymagają metoda Desch nadpisać zapisać dodać lub przecinek i następnie musimy poinformować naszą aplikację, aby użyć metody nadpisywanie.

116
00:11:41,940 --> 00:11:50,740
Więc po użyciu metody ręczne i musimy zdać argumentu, co należy szukać w jesteś teraz.

117
00:11:50,970 --> 00:11:52,650
Metoda podkreślenia Dupa za.

118
00:11:52,650 --> 00:11:57,660
To może być cokolwiek, ale zwykle jest to, co Patrz metoda podkreślenia.

119
00:11:57,660 --> 00:12:04,130
Więc teraz mamy powiedział naszą aplikację, gdy pojawi się wniosek, który ma podkreślić metodę jako parametr.

120
00:12:04,410 --> 00:12:14,970
Weź to, co równa się umieścić po plaster usuwać cokolwiek to jest dla nas będzie to put i usuwać i traktować ten wniosek jako wniosek put lub jako żądanie kasowania.

121
00:12:14,970 --> 00:12:22,740
Więc teraz nasza trasa tu gdzie jesteś cię wyjście powinno być teraz wykonywane i powinniśmy zobaczyć to z nadzieją.

122
00:12:22,950 --> 00:12:25,200
Więc spróbujmy.

123
00:12:25,230 --> 00:12:27,110
Nie ma problemu do tej pory.

124
00:12:27,750 --> 00:12:31,440
OK, wróćmy na jej formę.

125
00:12:31,440 --> 00:12:33,880
Więc zmieńmy powiedzieć aktualizowana.

126
00:12:34,170 --> 00:12:39,670
Niektóre wykrzykniki przedstawienia i teraz get update trasą.

127
00:12:39,700 --> 00:12:42,440
Więc zauważyć wniosek, który powstał jest podkreślenia sposób równy.

128
00:12:42,450 --> 00:12:51,690
Umieść w adresie URL, który sztuczki nasza aplikacja nie bardzo go oszukać, ale metoda nadpisywania słucha za to i to mówi OK, to w rzeczywistości nie jest to żądania POST.

129
00:12:51,690 --> 00:12:55,670
Chcą nam traktować go jako wniosek put więc wyzwalacze są zgasić.

130
00:12:56,190 --> 00:12:58,590
Więc teraz musimy zaktualizować, co dzieje się tutaj.

131
00:12:58,830 --> 00:13:17,440
Należy wziąć identyfikator w znajdzie dotychczasowym stanowisku istniejącego bloga i zaktualizować ją z nowymi danymi i możemy to zrobić za jednym zamachem stosując metodę dziennika, które wiążą przez ID i aktualizacji, a to trwa trzy argumenty.

132
00:13:17,640 --> 00:13:23,100
Identyfikator zdefiniowany przez nowe dane i zwrotnego.

133
00:13:23,790 --> 00:13:25,370
Więc to jest naprawdę miły sposób.

134
00:13:25,380 --> 00:13:36,770
Identyfikator jest ładny i prosty wniosek Paramjit z ID dane z formularza jest co nazwaliśmy go wewnątrz naszego dziennika formularza.

135
00:13:37,320 --> 00:13:44,960
Więc zwrócić się Zaloguj ciała i wywołania zwrotnego jest odzyskiwanie.

136
00:13:44,970 --> 00:13:53,150
Chcemy uruchomić błąd i będziemy nazywać tę logikę dźwięku ponownie lub faktycznie być nieco jaśniejsze.

137
00:13:53,150 --> 00:13:57,860
Zróbmy zaktualizowaną bloga oszczędzać.

138
00:13:58,470 --> 00:14:03,960
Jeśli wystąpi błąd Niech przekieruje Cię z powrotem do wskaźnika do teraz.

139
00:14:04,080 --> 00:14:10,830
To nie jest najlepszy przepływ użytkownika, ale to dobrze dla nas redstart przekierować blogi Sache.

140
00:14:11,350 --> 00:14:12,300
W przeciwnym razie.

141
00:14:12,840 --> 00:14:15,550
To, co chcemy zrobić, jeśli pomyślnie zaktualizowane.

142
00:14:15,660 --> 00:14:21,330
Mogliśmy albo cię powrotem do indeksu lub mogliśmy zabrać Cię do strony pokazu oraz zróbmy strony show.

143
00:14:21,390 --> 00:14:22,970
Więc redstart przekierować.

144
00:14:23,490 --> 00:14:36,660
I to musi być blogi slash slash w ID i ID jest w kilku miejscach możemy go znaleźć w aktualne blogu lub proste tak dalej jest użycie wniosek na tramstop Id tak po prostu.

145
00:14:36,660 --> 00:14:45,040
Więc musimy także zwrócić się do amstaff ID tak, że przekierowuje nas na prawej stronie pokazują, ponieważ musimy mieć identyfikator.

146
00:14:45,300 --> 00:14:49,960
Pozwala przetestować go teraz zobaczyć, co się dzieje.

147
00:14:51,900 --> 00:14:58,220
OK pozwala dodać ten jeden, że mówi naprawdę zaktualizowany teraz.

148
00:14:58,770 --> 00:15:02,030
Prześlij i to działało.

149
00:15:02,400 --> 00:15:13,260
Widać, że to okazało się, że Id uaktualnił go, a następnie przekierowany do strony nam pokazać, a teraz nasz nowy tytuł jest tam i jeśli wrócimy można zobaczyć.

150
00:15:13,260 --> 00:15:16,040
Gdzie jesteś na dole tutaj.

151
00:15:16,050 --> 00:15:23,730
Pierwszy post zaktualizowany teraz naprawdę jest wciąż aktualizowana więc utrzymywała się w bazie danych, więc jest to dużo pracy, aby uzyskać aktualizację do pracy.

152
00:15:23,730 --> 00:15:30,080
Nowy kod został dodanie metody nadpisywania w którym znowu to, że to trochę dziwne, dlaczego mamy to zrobić.

153
00:15:30,090 --> 00:15:34,930
Zasadniczo formy HDMI prostu nie coś innego niż żądania GET lub POST wspierać.

154
00:15:35,250 --> 00:16:07,040
Więc każdy ram tam większość ram przynajmniej coś jak Rails ma swój własny sposób udaje wniosek lub usunąć żądania i cały punkt jest po prostu tak, że po stronie serwera, możemy napisać kod, aby słuchać na żądanie put lub nasłuchiwać żądanie poprawki lub usunąć żądanie zamiast określać inną drogę apt nie pisać aktualizacji bloga slash ID jest moglibyśmy to zrobić, ale chodzi o to, że nie muszę.

155
00:16:07,080 --> 00:16:21,830
Możemy przechowywać go jako blogu czy pokazanie identyfikatora, ale sprawiają, że żądania PUT i już mamy inny pomysł blog ukośnik oczywiście na nasz koncert jako żądanie GET, więc jest to po prostu sposób na oddzielenie rzeczy utrzymując cię albo takie same.

156
00:16:21,960 --> 00:16:22,480
W porządku.

157
00:16:22,650 --> 00:16:29,970
Więc metoda ciągu będę słuchać sposobu podkreślenia, który właśnie skonfigurowano to zrobić tutaj.

158
00:16:30,900 --> 00:16:31,260
Wspaniały.

159
00:16:31,260 --> 00:16:32,740
Więc mamy aktualizację.

160
00:16:32,760 --> 00:16:38,070
Ostatnią rzeczą, którą mamy do zrobienia teraz jest go zniszczyć i zniszczyć jej szczęście jest ładne i proste.
