Samouczek Ruby on Rails
โก Inteligentne podsumowanie
Samouczek Ruby on Rails przedstawia framework internetowy typu open source napisany w Ruby, ktรณry obsลuguje Airbnb, GitHub i Shopify. Przewodnik obejmuje instalacjฤ na Windows, Mac i Linux, generatory Rails, routing, widoki, ActiveRecord, walidacje i debugowanie.

Co to jest Rubin?
Rubin to wysokopoziomowy, interpretowany, obiektowy jฤzyk programowania. Jest to dynamiczny jฤzyk open-source, za ktรณrym stoi liczna spoลecznoลฤ. Ruby zostaล zaprojektowany z myลlฤ o prostocie i produktywnoลci. Zachฤca do pisania kodu oprogramowania, w ktรณrym czลowiek jest najwaลผniejszy, a komputer dopiero potem. Yukihiro Matsumoto stworzyล Ruby w Japonii w 1995 roku.
Co to jest Railsy?
Rails to framework programistyczny napisany w jฤzyku Ruby do tworzenia aplikacji internetowych. Zostaล stworzony jako fundament aplikacji Basecamp, a nastฤpnie udostฤpniony jako oprogramowanie open source w 2004 roku. Rails oferuje wiele wbudowanych standardowych funkcji i funkcjonalnoลci, co czyni go odpowiednim wyborem dla prototypรณw MVP.ping i szybki rozwรณj produktu.
Rails zostaล stworzony przez Davida Heinemeiera Hanssona, znanego jako DHH. Jest to jedno z najbardziej wpลywowych i popularnych narzฤdzi do tworzenia aplikacji internetowych. Jest uลผywany przez najwiฤksze serwisy, takie jak Airbnb, GitHub i Shopify.
Dlaczego szyny?
Przed zainstalowaniem zestawu narzฤdzi warto zrozumieฤ, dlaczego Rails pozostaje popularnym wyborem dla firm zajmujฤ cych siฤ statkami.ping szybko aplikacje internetowe.
- Rails jest dostฤpny w postaci pakietu Ruby gem i moลผna go uลผywaฤ do tworzenia szerokiej gamy aplikacji.
- Umoลผliwia tworzenie standardowych aplikacji internetowych, witryn e-commerce, systemรณw zarzฤ dzania treลciฤ i innych.
- Rails to kompleksowy framework zawierajฤ cy wszystko, czego potrzebujesz do tworzenia aplikacji internetowych opartych na bazie danych, wykorzystujฤ cych wzorzec Model-View-Controller (MVC).
- Wszystkie warstwy zaprojektowano tak, aby bezproblemowo ze sobฤ wspรณลpracowaลy, dziฤki czemu projekty Rails zazwyczaj wymagajฤ mniejszej liczby linii kodu niลผ podobne projekty w innych frameworkach.
Jak pobraฤ i zainstalowaฤ Ruby na Windows
Proces instalacji zaleลผy od systemu operacyjnego. W kolejnych sekcjach opisano instalacjฤ Ruby na Windows, Mac i Linux.
Krok 1) Pobierz Rubyinstaller.
Najลatwiejszy sposรณb na zainstalowanie Ruby na twoim Windows komputer jest dostฤpny za pomocฤ
instalatora Ruby, dostฤpnego pod adresem https://rubyinstaller.org/.
Po pobraniu uruchom instalator.
Krok 2) Kliknij pobrany instalator.
Double-kliknij pobrany plik instalatora, na przykลad rubyinstaller-2.4.1-2-x64.exe.
Krok 3) Zaakceptuj licencjฤ.
Zaznacz opcjฤ โAkceptujฤ licencjฤโ i kliknij przycisk โDalejโ. Powinieneล zobaczyฤ poniลผszy ekran.
Krok 4) Zaznacz pierwsze dwa pola wyboru.
Zaznacz pierwsze dwa pola wyboru, aby uลatwiฤ uruchamianie skryptรณw Ruby.
Kliknij przycisk โInstalujโ, aby rozpoczฤ ฤ instalacjฤ. Po jej zakoลczeniu powinieneล zobaczyฤ poniลผszy ekran.
Krok 5) Kliknij Zakoลcz.
Nie odznaczaj opcji instalujฤ
cej MSYS2. Kliknij โZakoลczโ, aby zakoลczyฤ instalacjฤ. Otworzy siฤ okno wiersza poleceล, jak pokazano poniลผej.
Krok 6) Zainstaluj MSYS2.
Ten krok instaluje MSYS2, platformฤ kompilacji zawierajฤ
cฤ
menedลผera pakietรณw, ktรณry umoลผliwia ลatwฤ
instalacjฤ pakietรณw na Windows.
Naciลnij Enter, aby zainstalowaฤ wszystkie komponenty, poniewaลผ sฤ one wymagane do pลynnego dziaลania ลrodowiska programistycznego Ruby on Rails. Windows.
Instalowanie szyn
Powinieneล mieฤ zainstalowany Ruby z poprzedniej sekcji. Nastฤpnie zainstaluj Railsy. Moลผesz zainstalowaฤ Railsy za pomocฤ pakietu z Instalator szynale pakiet czฤsto nie zawiera najnowszej wersji wszystkich wymaganych zaleลผnoลci.
Jeลli masz juลผ zainstalowanฤ
najnowszฤ
wersjฤ Ruby i podstawowe pakiety RubyGems oraz rozszerzenia, po prostu uruchom nastฤpujฤ
ce polecenie w wierszu poleceล, aby zainstalowaฤ Rails w swoim systemie: gem install rails.
Bฤdziesz takลผe musiaล zainstalowaฤ node.js jeลli jeszcze go nie masz, poniewaลผ niektรณre biblioteki, od ktรณrych zaleลผy Rails, wymagajฤ JavaAby ลrodowisko uruchomieniowe skryptu dziaลaลo poprawnie. Pobierz Node w https://nodejs.org.
Bardziej powszechne i preferowane podejลcie Windows jest uลผyฤ Windows Podsystem dla Linuksa. Zapewnia ลrodowisko GNU/Linux z narzฤdziami wiersza poleceล, programami uลผytkowymi i popularnymi aplikacjami bezpoลrednio w nim. Windows.
Instalowanie Ruby na Macu
Na Twoim Macu jest juลผ preinstalowany Ruby. Jednak preinstalowana wersja jest czฤsto nieaktualna, dlatego warto zainstalowaฤ nowszฤ .
Najลatwiejszym sposobem wykonania tego jest uลผycie menedลผera pakietรณw, takiego jak Homebrew. Najpierw moลผe byฤ konieczna instalacja Homebrew poprzez uruchomienie poniลผszego polecenia w Terminalu.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Wyลwietli siฤ ostrzeลผenie i proลba o podanie hasลa. Wprowadลบ hasลo do Maca (znaki nie bฤdฤ siฤ pojawiaฤ podczas wpisywania) i naciลnij Enter po zakoลczeniu. Nastฤpnie uruchom to polecenie Homebrew, aby zainstalowaฤ Ruby na Macu.
brew install ruby
Nastฤpnie uruchom to polecenie:
echo 'export PATH="/usr/local/bin:/usr/local/sbin:$PATH"' >> ~/.bash_profile
Spowoduje to, ลผe nowa instalacja jฤzyka Ruby zostanie ustawiona jako domyลlna wersja Ruby w systemie, a nie wstฤpnie zainstalowana wersja Ruby.
Aby potwierdziฤ pomyลlnฤ instalacjฤ, uruchom nastฤpujฤ ce polecenie w terminalu:
ruby --version
Wyลwietla numer zainstalowanej wersji Ruby. Wynik wyglฤ da mniej wiฤcej tak:
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Instalowanie Ruby na Ubuntu (Linux)
Najprostszy sposรณb instalacji Ruby na Ubuntu odbywa siฤ za pomocฤ menedลผera pakietรณw apt. Uruchom nastฤpujฤ ce polecenia w terminalu, aby zainstalowaฤ najnowszฤ wersjฤ Ruby z Ubuntu repozytoria.
- sudo apt update โ To aktualizuje domyลlnฤ Ubuntu repozytoria.
- sudo apt install ruby-full โ Spowoduje to pobranie i instalacjฤ najnowszej wersji Ruby.
Aby potwierdziฤ instalacjฤ, uruchom ruby โ wersja. Wyลwietla wersjฤ Ruby, ktรณrฤ zainstalowaลeล.
Instalowanie szyn na Ubuntu (Linux)
Aby zainstalowaฤ Rails na komputerze z systemem Linux, wykonaj poniลผsze czynnoลci.
Krok 1) Zaktualizuj swojego menedลผera klejnotรณw, uruchamiajฤ c aktualizacja klejnotu โ system w terminalu lub wierszu poleceล.
Krok 2) Uruchom montaลผ szyn gem aby zainstalowaฤ najnowszฤ wersjฤ Railsรณw na swoim komputerze.
Krok 3) Zainstaluj pakiet gem, aby uลatwiฤ zarzฤ dzanie zaleลผnoลciami w aplikacjach Rails. Uruchom klejnot do instalacji klejnotรณw.
Dwie zasady Rails
Rails opiera siฤ na podstawowych zasadach projektowania oprogramowania i zachฤca do ich stosowania.
Dwa najczฤstsze to:
- Nie powtarzaj siฤ (DRY) โ prowadzi to do zwiฤzลego, spรณjnego i ลatwego w utrzymaniu kodu.
- Konwencja ponad konfiguracjฤ โ Rails jest wstฤpnie skonfigurowany z rozsฤ dnymi ustawieniami domyลlnymi, ktรณre pasujฤ do wiฤkszoลci powszechnych zastosowaล. Dziฤki temu tworzenie aplikacji jest szybsze i mniej kodu do utrzymania.
Railsy โ Struktury plikรณw projektu
Po zainstalowaniu Rails w systemie utwรณrz aplikacjฤ Rails. W kolejnych sekcjach omรณwimy przykลad Ruby on Rails, budujฤ c aplikacjฤ z listฤ zadaล do wykonania. Uruchom nastฤpujฤ ce polecenie w terminalu, aby utworzyฤ aplikacjฤ:
rails new todo_app
To polecenie tworzy katalog o nazwie todo_app w bieลผฤ cym katalogu zawierajฤ cym podstawowฤ strukturฤ folderรณw aplikacji internetowej Rails, jak pokazano poniลผej.
Oto gลรณwne katalogi wygenerowane dla projektu:
Aplikacja โ grupuje podkatalogi dla interfejsu uลผytkownika/ukลadu (widoki i funkcje pomocnicze), kontrolera (pliki kontrolerรณw) i modeli (logika biznesowa/aplikacji).
aplikacja/kontrolery โ przechowuje pliki kontrolerรณw uลผywane przez Rails do obsลugi ลผฤ daล od klienta.
aplikacja/zasoby โ zawiera pliki statyczne potrzebne front-endowi aplikacji, pogrupowane wedลug typu: JAVASCRIPT plikรณw, obrazรณw i arkuszy stylรณw.
aplikacja/pomocnicy โ zawiera funkcje pomocnicze, ktรณre sprawiajฤ , ลผe model aplikacji, widok i logika kontrolera sฤ skupione, maลe i przejrzyste.
aplikacja/modele โ zawiera pliki modelujฤ ce bazฤ danych Twojej aplikacji. Klasy modeli znacznie uลatwiajฤ pracฤ z bazฤ danych.
aplikacja/widoki โ przechowuje pliki szablonรณw/ukลadรณw, z ktรณrymi uลผytkownik Twojej aplikacji wchodzi w interakcjฤ. Szablony ลฤ czฤ kod HTML z danymi z bazy danych.
kosz โ zawiera skrypty Rails, ktรณre uruchamiajฤ Twojฤ aplikacjฤ. Moลผe rรณwnieลผ zawieraฤ inne skrypty, ktรณrych uลผywasz do konfiguracji i aktualizacji aplikacji.
config โ przechowuje pliki konfiguracyjne takie jak baza danych.yml, ลrodowisko.rb, trasy.rbitp., ktรณrych Twoja aplikacja potrzebuje do uruchomienia.
db โ zawiera pliki i skrypty sลuลผฤ ce do zarzฤ dzania bazฤ danych aplikacji.
lib โ zawiera rozszerzone moduลy dla Twojej aplikacji.
log โ zawiera pliki dziennika, takie jak serwer.log, rozwรณj.log, test.log i produkcja.log, uลผywany do debugowania i monitorowania aplikacji.
publiczny โ zawiera pliki statyczne i skompilowane zasoby, takie jak pliki HTML, JavaPliki skryptรณw, obrazy i arkusze stylรณw.
test โ zawiera pliki testowe, ktรณre piszesz w celu przetestowania funkcjonalnoลci swojej aplikacji.
tmp โ zawiera pliki tymczasowe, takie jak pliki pamiฤci podrฤcznej i pliki PID.
sprzedawca โ zawiera biblioteki stron trzecich.
Plik klejnotรณw โ okreลla podstawowe wymagania dotyczฤ ce gemรณw do uruchomienia aplikacji webowej. Moลผesz grupowaฤ gemy na deweloperskie, testowe lub produkcyjne, a Rails bฤdzie wiedziaล, kiedy uwzglฤdniฤ kaลผdy gem.
Gemfile.lock โ w przeciwieลstwie do pliku Gemfile, ktรณry jawnie wymienia gemy, ktรณre chcesz mieฤ w swojej aplikacji, plik Gemfile.lock zawiera dodatkowo inne gemy, od ktรณrych zaleลผฤ te wymienione w pliku Gemfile. Sฤ one instalowane automatycznie, aby speลniฤ zaleลผnoลci.
Readme.md โ uลผyj tego pliku, aby udostฤpniฤ istotne szczegรณลy dotyczฤ ce Twojej aplikacji, takie jak to, co aplikacja robi oraz jak jฤ zainstalowaฤ i uruchomiฤ.
Plik rakefile โ zawiera rรณลผne definicje zadaล rake, ktรณre pomagajฤ zautomatyzowaฤ codzienne zadania administracyjne Twojej aplikacji.
config.ru โ plik konfiguracyjny Rack, ktรณry zapewnia interfejs do serwera WWW w celu uruchomienia aplikacji.
Zmieล katalog na todo_app katalog Railsy wygenerowane i uruchomione serwer Rails aby uruchomiฤ aplikacjฤ. Typ localhost: 3000 w pasku adresu przeglฤ darki internetowej. Jeลli wszystko poszลo dobrze, powinieneล zobaczyฤ poniลผszy ekran.
To jest domyลlna strona gลรณwna Twojej aplikacji. Zmienisz jฤ w dalszej czฤลci tego samouczka Ruby on Rails. Moลผesz zatrzymaฤ serwer, naciskajฤ c Ctrl + C.
Rails โ Generowanie poleceล
Polecenie generowania w Railsach wykorzystuje szablony do tworzenia wielu przydatnych elementรณw w aplikacji. Te generatory oszczฤdzajฤ mnรณstwo czasu.
Piszฤ szablonowy kod, ktรณry jest niezbฤdny do dziaลania Twojej aplikacji internetowej. Uruchom szyny generujฤ samodzielnie w wierszu poleceล lub terminalu, aby wyลwietliฤ listฤ dostฤpnych generatorรณw, jak pokazano poniลผej.
Moลผesz takลผe uruchomiฤ szyny generujฤ Aby zobaczyฤ opis dziaลania polecenia. Zawiera ono listฤ wygodnych opcji i przykลad uลผycia. Poniลผszy rysunek przedstawia wynik dziaลania polecenia szyny generujฤ kontroler.
Uลผyj polecenia generowania rusztowania w Rails, aby automatycznie utworzyฤ model, widok i kontroler dla tworzonej aplikacji listy zadaล. Uruchom poniลผsze polecenie w terminalu (upewnij siฤ, ลผe nadal jesteล w todo_app informator):
rails generate scaffold todo_list title:string description:text
Tworzy peลny interfejs internetowy CRUD (Tworzenie, Odczyt, Aktualizacja, Usuwanie) dla tabeli TodoLists.
Kolejnym przydatnym poleceniem, ktรณre warto znaฤ, jest szyny niszczฤ . Odwraca wszystko szyny generujฤ robi.
Szyny โ wyznaczanie trasy
System routingu Rails, zwany routerem Rails, obsลuguje wszystkie ลผฤ dania przychodzฤ ce do Twojej aplikacji internetowej. Bada URL kaลผdego ลผฤ dania i mapuje je na akcjฤ kontrolera odpowiedzialnฤ za jego obsลugฤ, uลผywajฤ c skลadni okreลlonej w pliku tras (config/routes.rb).
Plik tras kontroluje wszystko URL aspekt Twojej aplikacji internetowej. Rails wykorzystuje projekt RESTful oparty na stylu architektonicznym REST, ktรณry zapewnia mapฤping miฤdzy czasownikami HTTP a ลผฤ daniem URLs do dziaลaล kontrolera.
Plik tras zostaล wygenerowany podczas uruchamiania szyny nowe wczeลniej. Kontynuujฤ c tworzenie aplikacji Todo, uruchom nastฤpujฤ ce polecenie:
rails db:migrate
Upewnij siฤ, ลผe nadal znajdujesz siฤ w katalogu gลรณwnym aplikacji ( todo_app informator).
Uruchom ponownie serwer za pomocฤ
serwer Rails. Rodzaj http://localhost:3000/todo_lists/ w przeglฤ
darce i naciลnij Enter. Powinna wyลwietliฤ siฤ strona internetowa podobna do poniลผszej.
To jest widok listy zadaล do wykonania wygenerowany przez polecenie rusztowania, ktรณry jest kontrolowany przez kontroler TodoListsController wskaลบnik akcji.
Dodaj listฤ zadaล, klikajฤ c โNowa lista zadaลโ na stronie. Powinieneล zobaczyฤ poniลผszy ekran.
Wskazรณwka URL jest teraz http://localhost:3000/todo_lists/new. To strona sลuลผฤ
ca do tworzenia nowej listy zadaล do wykonania, ktรณra jest kontrolowana przez kontroler TodoListsController. nowych Metoda.
Wprowadลบ tytuล i opis listy zadaล do wykonania w formularzu i kliknij โUtwรณrz listฤ zadaล do wykonaniaโ. URL powinien zmieniฤ siฤ na http://localhost:3000/todo_lists/1, jak pokazano niลผej.
To jest strona pokazowa listy zadaล do wykonania, kontrolowanej przez kontroler TodoListsController. pokazaฤ metoda. Jeลli wrรณcisz do http://localhost:3000/todo_lists/, teraz powinieneล zobaczyฤ poniลผszy ekran z dodanฤ
nowฤ
listฤ
zadaล do wykonania.
Rails byล w stanie zmapowaฤ kaลผde ลผฤ danie do odpowiedniej akcji TodoListsController, korzystajฤ c z definicji trasy w config/routes.rb.
Jeลli zajrzysz do tego pliku, zobaczysz pojedynczฤ liniฤ zasoby :todo_lists, co jest domyลlnym sposobem Railsรณw na zapisywanie tras RESTful. Ten pojedynczy wiersz tworzy siedem tras, wszystkie mapowaneping do kontrolera TodoLists.
Zgodnie z konwencjฤ , kaลผda akcja kontrolera jest mapowana na konkretnฤ operacjฤ CRUD (Utwรณrz, Odczytaj, Aktualizuj, Usuล) w bazie danych.
Uruchom trasy kolejowe w wierszu poleceล, aby zobaczyฤ rรณลผne trasy dostฤpne w aplikacji. Poniลผszy rysunek przedstawia wynik uruchomienia trasy kolejowe.
Rails โ Widoki
Warstwa widoku jest jednym z komponentรณw paradygmatu MVC i odpowiada za generowanie odpowiedzi HTML dla kaลผdego ลผฤ dania kierowanego do aplikacji. Rails domyลlnie korzysta z ERB (Embedded Ruby), ktรณry jest zaawansowanym systemem szablonรณw dla Ruby.
ERB uลatwia pisanie i utrzymanie szablonรณw, ลฤ czฤ c zwykลy tekst z kodem Ruby w celu podstawiania zmiennych i kontroli przepลywu. Szablon ERB wykorzystuje .html.erb rozbudowa.
Najczฤลciej bฤdziesz uลผywaฤ dwรณch znacznikรณw, z ktรณrych kaลผdy powoduje, ลผe osadzony kod bฤdzie przetwarzany i obsลugiwany w okreลlony sposรณb.
Tag ze znakiem rรณwnoลci <%=%> oznacza, ลผe โโosadzony kod jest wyraลผeniem i wynik kodu powinien zostaฤ podstawiony do danych wyjลciowych podczas renderowania szablonu.
Drugi tag bez znaku rรณwnoลci <%%> informuje renderer, ลผe wynik kodu nie powinien byฤ podstawiany ani drukowany w wyjลciu.
Kaลผdy kontroler w aplikacji Railsowej ma odpowiadajฤ cy mu podkatalog aplikacja/widoki, a kaลผda akcja w kontrolerze ma odpowiadajฤ cฤ jej .html.erb plik w tym podkatalogu.
Spรณjrz na aplikacja/widoki aplikacji Todo, ktรณrฤ tworzysz. Znajdziesz podkatalog o nazwie listy_do_zrobienia zawierajฤ ce .html.erb pliki o nazwach odpowiadajฤ cych akcjom w Listy zadaล sterownik.
Railsy โ ActiveRecord, wzorzec aktywnego rekordu i ORM
ActiveRecord to implementacja wzorca Active Record w jฤzyku Ruby. W tym wzorcu klasa reprezentuje tabelฤ bazy danych, a instancja klasy reprezentuje wiersz w tej tabeli.
ActiveRecord jest powszechnie nazywany ORM (Object Relational Map)ping) โ technika, ktรณra pozwala zarzฤ dzaฤ bazฤ danych w jฤzyku, w ktรณrym czujesz siฤ najlepiej. Jest ona niezaleลผna od bazy danych, dziฤki czemu moลผesz ลatwo przeลฤ czaฤ siฤ miฤdzy bazami danych โ na przykลad SQLite, MySQL, PostgreSQL, SQL Server lub Oracle โ stosujฤ c ten sam kod i logikฤ.
Na przykลad, aby uzyskaฤ tablicฤ zawierajฤ cฤ wszystkie listy zadaล do wykonania w aplikacji, nie musisz pisaฤ kodu, ktรณry otwiera poลฤ czenie, uruchamia zapytanie SQL SELECT i konwertuje wynik.
Po prostu piszesz Lista_do_wszystkich, a ActiveRecord zwraca tablicฤ wypeลnionฤ obiektami TodoList, ktรณre moลผesz wykorzystaฤ wedลug wลasnego uznania.
Wszystko, co musisz zrobiฤ, to skonfigurowaฤ konfiguracjฤ w config/baza danych.yml, a ActiveRecord uwzglฤdnia rรณลผnice miฤdzy systemami baz danych. Przechodzฤ c z jednej bazy danych do drugiej, nie musisz przepisywaฤ kodu.
Skupiasz siฤ na logice aplikacji, a ActiveRecord dba o szczegรณลy niskopoziomowe zwiฤ zane z poลฤ czeniem z bazฤ danych. Wykorzystuje konwencje nazewnictwa do mapowania modeli na tabele bazy danych.
Rails przeksztaลca nazwy klas modeli na liczbฤ mnogฤ , aby znaleลบฤ odpowiedniฤ tabelฤ w bazie danych. Zatem dla klasy Lista rzeczy do zrobieniaActiveRecord uลผywa tabeli bazy danych o nazwie listy_do_zrobienia.
Szyny โ Migracje
Migracja Rails to skrypt, ktรณrego uลผywasz do rozwijania bazy danych swojej aplikacji. Sลuลผy do konfigurowania lub modyfikowania bazy danych bez koniecznoลci rฤcznego pisania kodu SQL.
Uลผywa jฤzyka Ruby do definiowania zmian schematu bazy danych i umoลผliwia stosowanie kontroli wersji w celu zachowania synchronizacji bazy danych w rรณลผnych ลrodowiskach.
Migracje Rails wykorzystujฤ jฤzyk Ruby Domain Specific Language (DSL). Dziaลa on jaktraci umoลผliwia korzystanie z Twojego silnika bazy danych lub zmianฤ go zaleลผnie od Twoich wymagaล.
Migracje moลผna udostฤpniaฤ wszystkim uลผytkownikom aplikacji, a takลผe cofaฤ zmiany. To solidny mechanizm bezpieczeลstwa, wiฤc nie musisz siฤ martwiฤ o trwaลe uszkodzenie bazy danych.
Railsy โ skojarzenia ActiveRecord
Poลฤ czenie miฤdzy dwoma modelami ActiveRecord nazywa siฤ asocjacjฤ . Asocjacje znacznie uลatwiajฤ wykonywanie operacji na powiฤ zanych rekordach w kodzie. Istniejฤ cztery popularne kategorie.
Jeden na jeden: Rekord zawiera dokลadnie jedno wystฤ pienie innego modelu. Dobrym przykลadem jest profil uลผytkownika โ uลผytkownik ma tylko jeden profil. Uลผywa on ma jeden sลowo kluczowe.
Jeden za duลผo: najczฤstsze skojarzenie โ jeden model ma zero lub wiฤcej wystฤ pieล innego modelu. Uลผyj ma wiele sลowo kluczowe oznaczajฤ ce to powiฤ zanie.
Wiele do wielu: nieco bardziej skomplikowane. ActiveRecord oferuje dwa sposoby obsลugi: ma_i_naleลผy_do_wielu oraz ma_wiele :przez, co daje dostฤp do modelu ลฤ czenia zdefiniowanego w osobnej tabeli.
Polimorficzny jeden do wielu: Bardziej zaawansowane powiฤ zanie w Rails. Definiuje model, ktรณry moลผe naleลผeฤ do wielu rรณลผnych modeli w ramach jednego powiฤ zania.
Railsy โ weryfikacja ActiveRecord
Walidacja pomaga upewniฤ siฤ, ลผe posiadasz poprawne dane, poniewaลผ praca z nieprawdziwymi danymi jest ryzykowna i moลผe kosztowaฤ Twojฤ firmฤ pieniฤ dze.
Walidacja zapewnia rรณwnieลผ dodatkowฤ warstwฤ zabezpieczeล przed zลoลliwymi uลผytkownikami prรณbujฤ cymi wprowadziฤ szkodliwe dane do bazy danych. Rails oferuje przejrzyste API narzฤdzi pomocniczych do walidacji w ActiveRecord, ktรณre zapewniajฤ czystoลฤ, bezpieczeลstwo i brak bลฤdรณw w bazie danych.
Walidacje ActiveRecord sฤ przeprowadzane na obiektach modelu przed zapisaniem ich w bazie danych, co zwiฤksza ich niezawodnoลฤ i zgodnoลฤ z najlepszymi praktykami.
Nastฤpujฤ ce metody ActiveRecord wyzwalajฤ walidacjฤ po wywoลaniu na obiektach modelu: twรณrz, twรณrz!, zapisuj, zapisuj!, aktualizuj i aktualizuj!. Wersje z hukiem (utwรณrz!, zapisz! i zaktualizuj!) zgลasza wyjฤ tek, jeลli rekord jest nieprawidลowy, podczas gdy wersje bez funkcji bang zwracajฤ wartoลฤ false.
Najpopularniejszymi pomocnikami walidacji ActiveRecord sฤ :
- Potwierdzenie: Sprawdza, czy dwa pola majฤ tฤ samฤ wartoลฤ, na przykลad hasลo i potwierdzenie hasลa. Jest uลผywany razem z narzฤdziem pomocniczym do walidacji obecnoลci.
- Obecnoลฤ: sprawdza czy pole nie jest puste.
- Wyjฤ tkowoลฤ: zapewnia unikalnฤ wartoลฤ dla pola, na przykลad nazwy uลผytkownika.
- Dลugoลฤ: wymusza ograniczenie dลugoลci znaku w polu.
Moลผesz rรณwnieลผ utworzyฤ wลasnฤ niestandardowฤ walidacjฤ, uลผywajฤ c uprawomocniฤ metodฤ i przekazujฤ c jej nazwฤ niestandardowej metody walidacji.
Sprawdลบ model bลฤdy obiekt, aby dowiedzieฤ siฤ, dlaczego walidacja siฤ nie powiodลa. Daje to wszystko, czego potrzebujesz, aby Twoja aplikacja byลa bardziej ograniczona i bezpieczna, umoลผliwiajฤ c dostฤp do bazy danych tylko prawidลowych danych.
Railsy โ ActionController
Kontroler Rails jest centrum Twojej aplikacji internetowej. Uลatwia i koordynuje komunikacjฤ pomiฤdzy uลผytkownikiem, modelami i widokami.
Twoje klasy kontrolerรณw dziedziczฤ po Kontroler aplikacji, ktรณry zawiera kod, ktรณry moลผna uruchomiฤ we wszystkich innych kontrolerach i ktรณry z kolei dziedziczy po Kontroler akcji::Baza.
Kontroler zapewnia Twojej aplikacji nastฤpujฤ ce funkcje:
- Kieruje ลผฤ dania zewnฤtrzne do dziaลaล wewnฤtrznych.
- Zarzฤ dza buforowaniem, zwiฤkszajฤ c wydajnoลฤ aplikacji.
- Zarzฤ dza metodami pomocniczymi, ktรณre rozszerzajฤ moลผliwoลci szablonรณw widokรณw, a takลผe zarzฤ dza sesjami uลผytkownikรณw, zapewniajฤ c im pลynne dziaลanie.
Szyny โ konfiguracje
Moลผesz skonfigurowaฤ komponenty, takie jak inicjatory, zasoby, generatory i oprogramowanie poลredniczฤ ce, korzystajฤ c z inicjatorรณw aplikacji Rails i plikรณw konfiguracyjnych w config katalog. Pliki takie jak konfiguracja/aplikacja.rb, konfiguracja/ลrodowiska/rozwรณj.rb, konfiguracja/ลrodowiska/test.rb Tutaj sฤ uลผywane. Moลผesz rรณwnieลผ dodaฤ niestandardowe ustawienia dla swojej aplikacji.
Railsy โ debugowanie
Podczas tworzenia aplikacji bฤdziesz musiaล debugowaฤ kod. Rails uลatwia to dziฤki paaa klejnot. Moลผesz rozpoczฤ ฤ sesjฤ debugowania, umieszczajฤ c sลowo kluczowe paaa w dowolnym miejscu kodu aplikacji.
To tymczasowo zatrzymuje wykonywanie w tym momencie. Gem byebug oferuje kilka poleceล. Najbardziej przydatne to:
- dalej: przechodzi do nastฤpnej linii kodu, pomijaping wszystkie metody wywoลywane przez bieลผฤ cy wiersz.
- krok: podobnego do Nastฤpny, ale przechodzi do kaลผdej wywoลywanej metody.
- przerwa: zatrzymuje wykonywanie kodu.
- dalej: kontynuuje wykonywanie kodu.
Dostฤpne sฤ rรณwnieลผ inne narzฤdzia do debugowania, takie jak: Wtrฤ caฤ siฤWszystkie oferujฤ podobnฤ funkcjonalnoลฤ, ale rรณลผniฤ siฤ nieco skลadniฤ . Nie naleลผy uลผywaฤ gemรณw debugowania w ลrodowisku produkcyjnym, poniewaลผ stanowiฤ one zagroลผenie dla aplikacji i negatywnie wpลywajฤ na komfort uลผytkowania.
Pliki dziennika moลผna sprawdzaฤ pod kฤ tem bลฤdรณw w ลrodowisku produkcyjnym i odpowiednio je obsลugiwaฤ. Podczas tworzenia aplikacji naleลผy rรณwnieลผ stosowaฤ podejลcie TDD (Test-Driven Development), aby upewniฤ siฤ, ลผe wszystko dziaลa poprawnie przed wdroลผeniem w ลrodowisku produkcyjnym.













