Samouczek Ruby on Rails
Co to jest Rubin?
Rubin jest wysokopoziomowym, interpretowanym i obiektowym jฤzykiem programowania. Jest dynamicznym jฤzykiem open-source, ktรณry ma za sobฤ ลwietnฤ spoลecznoลฤ. Ruby zostaล zaprojektowany dla prostoty i produktywnoลci. Zachฤca do pisania kodu oprogramowania najpierw przez czลowieka, a dopiero potem przez komputer. Zostaล stworzony przez Yukihiro Matsumoto w Japonii w 1995 roku.
Co to jest Railsy?
Rails jest frameworkiem programistycznym napisanym w Ruby do tworzenia aplikacji internetowych. Zostaล stworzony jako podstawa aplikacji Basecamp, a nastฤpnie wydany jako oprogramowanie typu open source w 2004 roku. Rails oferuje wiele wbudowanych standardowych funkcji i funkcjonalnoลci, co czyni go odpowiedniฤ opcjฤ do prototypowania i rozwoju MVP.
Zostaล stworzony przez Davida Heinemeiera Hassona, popularnie znanego jako DHH. Jest to jedno z najbardziej wpลywowych i popularnych narzฤdzi do tworzenia aplikacji internetowych. Jest uลผywany przez niektรณre ulubione witryny, takie jak Airbnb, Github, Shopify itp.
Dlaczego szyny?
Oto zalety/korzyลci korzystania z Railsรณw:
- Railsy sฤ spakowane jako klejnot Ruby i moลผna ich uลผywaฤ do tworzenia rรณลผnorodnych aplikacji.
- Umoลผliwia budowanie zwykลych aplikacji internetowych, aplikacji e-commerce, systemรณw zarzฤ dzania treลciฤ i nie tylko.
- Railsy to framework z peลnym stosem, ktรณry zawiera wszystko, czego potrzebujesz do stworzenia aplikacji internetowej opartej na bazie danych, przy uลผyciu wzorca Model-View-Controller.
- Oznacza to, ลผe wszystkie warstwy sฤ zbudowane tak, aby pลynnie ze sobฤ wspรณลdziaลaลy i wymagaลy mniejszej iloลci kodu. Wymaga mniej linii kodu niลผ inne frameworki.
Jak pobraฤ i zainstalowaฤ Ruby na Windows
Proces instalacji bฤdzie zaleลผaล od Twojego systemu operacyjnego. Przejdziesz przez instalacjฤ Ruby na Windows, Mac i Linux.
Krok 1) Pobierz Rubyinstaller
Najลatwiejszy sposรณb na zainstalowanie Ruby na twoim Windows komputerze jest uruchamiany za pomocฤ
instalatora Ruby, ktรณry moลผna pobraฤ pod adresem https://rubyinstaller.org/.
Wszystko, co musisz zrobiฤ, to uruchomiฤ pobrany instalator.
Krok 2) Kliknij pobrany instalator
Double-kliknij pobrany instalator โrubyinstaller-2.4.1-2-x64.exeโ.
Krok 3) Zaakceptuj licencjฤ
Wybierz przycisk โAkceptujฤ licencjฤโ i kliknij przycisk โDalejโ. To powinno doprowadziฤ Ciฤ do nastฤpnego rysunku poniลผej:
Krok 4) Zaznacz pierwsze dwa pola wyboru
Zaznacz pierwsze dwa pola wyboru, aby uลatwiฤ uruchamianie skryptรณw Ruby.
Kliknij przycisk โZainstalujโ, aby rozpoczฤ ฤ instalacjฤ. Po zakoลczeniu instalacji powinieneล zobaczyฤ poniลผszy rysunek.
Krok 5) Kliknij Zakoลcz
Nie odznaczaj opcji checkbox, ktรณra instaluje MSYS2. Kliknij โZakoลczโ, aby zakoลczyฤ instalacjฤ, a zostanie wyลwietlone okno wiersza poleceล pokazane na poniลผszym rysunku.
Krok 6) Instaluje MSYS2
Ten krok instaluje MSYS2, platformฤ do budowania zawierajฤ
cฤ
menedลผera pakietรณw uลatwiajฤ
cego instalacjฤ pakietรณw Windows.
Naciลnij klawisz Enter, aby zainstalowaฤ wszystkie komponenty, poniewaลผ wszystkie sฤ wymagane do pลynnego ลrodowiska programistycznego Ruby on Rails do pracy Windows.
Instalowanie szyn
Powinieneล mieฤ zainstalowany Ruby z poprzedniej sekcji, a teraz zamierzasz zainstalowaฤ Railsy. Moลผesz zainstalowaฤ Railsy za pomocฤ pakietu z Instalator szyn, ale problem polega na tym, ลผe nie otrzymujesz najnowszej wersji wymaganych pakietรณw.
Jeลli masz juลผ zainstalowanฤ najnowszฤ wersjฤ Ruby i podstawowy zestaw wymaganych RubyGems i rozszerzeล, wszystko, co musisz teraz zrobiฤ, to uruchomiฤ 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ฤ pliku Javascript runtime, aby dziaลaฤ poprawnie. Moลผesz uzyskaฤ wฤzeล pod adresem https://nodejs.org.
Jest to bardziej powszechne i preferowane podejลcie do rozwoju WindowsSpoลecznoลฤ Rails uลผywa Windows Podsystem dla systemu Linux zapewniajฤ cy ลrodowisko GNU/Linux z narzฤdziami wiersza poleceล, narzฤdziami i popularnymi aplikacjami bezpoลrednio dostฤpnymi Windows.
Instalowanie Ruby na Macu
Na Twoim Macu jest juลผ preinstalowany Ruby. Jednak wstฤpnie zainstalowana wersja moลผe byฤ stara, dlatego konieczne bฤdzie zainstalowanie nowej/najnowszej wersji.
Najลatwiej to zrobiฤ za pomocฤ menedลผera pakietรณw, takiego jak Homebrew. Moลผe byฤ konieczne najpierw zainstalowanie Homebrew, uruchamiajฤ c poniลผsze polecenie w terminalu.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)
Spowoduje to wyลwietlenie ostrzeลผenia i proลby o podanie hasลa. Wprowadลบ hasลo do komputera Mac (znaki nie bฤdฤ widoczne podczas wpisywania). Po prostu naciลnij โEnterโ, gdy skoลczysz wpisywaฤ hasลo. Nastฤpnie uruchom to proste polecenie Homebrew, aby zainstalowaฤ Ruby na komputerze Mac.
brew install ruby
A takลผe uruchom to polecenie:
echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile
Aby ustawiฤ tฤ instalacjฤ Ruby jako domyลlnฤ Ruby do uruchomienia w twoim systemie, a nie preinstalowanฤ Ruby.
Aby potwierdziฤ, ลผe instalacja zakoลczyลa siฤ powodzeniem, moลผesz uruchomiฤ nastฤpujฤ ce polecenie w terminalu
ruby --version
spowoduje to wydrukowanie numeru wersji Ruby, ktรณrฤ zainstalowaลeล. Dane wyjลciowe bฤdฤ wyglฤ daฤ mniej wiฤcej tak
ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]
Instalowanie Ruby na Ubuntu (Linux)
Najลatwiejszy sposรณb na zainstalowanie Ruby na twoim komputerze Ubuntu system jest poprzez menedลผera pakietรณw apt. Musisz uruchomiฤ nastฤpujฤ ce polecenia w terminalu, aby zainstalowaฤ najnowszฤ wersjฤ Ruby z Ubuntu repozytoria.
- aktualizacja sudo apt โ Spowoduje to aktualizacjฤ ustawieล domyลlnych Ubuntu repozytoria
- sudo apt zainstaluj Ruby-full โ Pobierze i zainstaluje najnowszฤ wersjฤ Ruby
Aby potwierdziฤ pomyลlnฤ instalacjฤ, moลผesz uruchomiฤ nastฤpujฤ ce polecenie โrubin โ wersjaโ, spowoduje to wydrukowanie zainstalowanej wersji Ruby.
Instalowanie szyn na Ubuntu (Linux)
Powinieneล wykonaฤ poniลผsze kroki, aby pomyลlnie zainstalowaฤ Railsy na komputerze z systemem Linux.
Krok 1) Zaktualizuj menedลผera klejnotรณw komputera, uruchamiajฤ c โaktualizacja klejnotu โ systemโ w terminalu lub w wierszu poleceล.
Krok 2) Uruchom โklejnot instalacyjny szynโ aby zainstalowaฤ najnowszฤ wersjฤ Railsรณw na swoim komputerze.
Krok 3) Powinieneล zainstalowaฤ klejnot pakietu, aby uลatwiฤ zarzฤ dzanie zaleลผnoลciami klejnotรณw aplikacji Rails. Uruchomiฤ โpakiet instalacji klejnotuโ do niego dostaฤ.
Dwie zasady Railsรณw
Railsy kierujฤ siฤ podstawowymi zasadami projektowania oprogramowania i zachฤcajฤ do korzystania z tych zasad.
Dwa najczฤstsze to:
- Nie powtarzaj siฤ (DRY) โ dziฤki temu moลผesz pisaฤ zwiฤzลy, spรณjny i ลatwy w utrzymaniu kod.
- Konwencja zamiast konfiguracji โ Railsy sฤ wstฤpnie skonfigurowane tak, aby uลผywaฤ rozsฤ dnych ustawieล domyลlnych, ktรณre pasujฤ do wiฤkszoลci typowych zastosowaล. Dziฤki temu tworzenie aplikacji jest szybsze, a ponadto masz mniej kodu do utrzymania.
Railsy โ Struktury plikรณw projektu
Majฤ c teraz Rails zainstalowany w systemie, stwรณrzmy aplikacjฤ Rails! Nauczymy siฤ przykลadรณw Ruby on Rails i jak utworzyฤ aplikacjฤ listy zadaล w tym samouczku Ruby on Rails. Uruchom nastฤpujฤ ce polecenie โszyny nowej aplikacji todo_appโ w terminalu, aby utworzyฤ aplikacjฤ.
To polecenie tworzy katalog o nazwie โaplikacja do zrobieniaโ w bieลผฤ cym katalogu z podstawowฤ strukturฤ folderรณw aplikacji internetowej Rails, jak pokazano na poniลผszym rysunku:
W tym przykลadzie Ruby on Rails przejdziesz przez gลรณwne katalogi.
Aplikacja โ Ten katalog grupuje rรณลผne podkatalogi dla interfejsu uลผytkownika/ukลadu (widoki i pomocniki), kontrolera (pliki kontrolerรณw) i modeli (logika biznesowa/aplikacja).
aplikacja/kontrolery โ Ten katalog przechowuje pliki kontrolera uลผywane przez Railsy do obsลugi ลผฤ daล od klienta.
aplikacja/zasoby โ Zawiera pliki statyczne, co jest koniecznoลciฤ , aby front-end aplikacji byล pogrupowany w foldery w zaleลผnoลci od ich typu โ JAVASCRIPT plikรณw, obrazรณw i arkuszy stylรณw.
aplikacja/pomocnicy โ Ten podkatalog zawiera funkcje pomocnicze, ktรณre sprawiajฤ , ลผe model aplikacji, widok i logika kontrolera sฤ skoncentrowane, maลe i przejrzyste.
aplikacja/modele โ Zawiera pliki
ktรณre modelujฤ bazฤ danych aplikacji. Klasy modelu bardzo uลatwiajฤ pracฤ z bazฤ danych.
aplikacja/widoki โ Przechowuje pliki szablonรณw/ukลadรณw, z ktรณrymi uลผytkownik aplikacji wchodzi w interakcjฤ. Szablony sฤ poลฤ czeniem HTML i danych z bazy danych.
kosz โ Zawiera skrypty Rails, ktรณre uruchamiajฤ Twojฤ aplikacjฤ. Moลผe rรณwnieลผ zawieraฤ inne skrypty, ktรณrych uลผywasz do konfigurowania i uaktualniania aplikacji.
Konfiguracja โ Zawiera pliki konfiguracyjne โ baza danych.yml, ลrodowisko.rb, trasy.rbitp., ktรณre aplikacja musi uruchomiฤ.
DB โ Ten katalog zawiera pliki/skrypty uลผywane do zarzฤ dzania bazฤ danych aplikacji.
biblioteka โ Katalog ten zawiera rozszerzony moduล dla Twojej aplikacji.
dziennik - Zawiera pliki dziennika โ serwer.log, rozwรณj.log, test.log i produkcja.logitp., ktรณre sฤ uลผywane do debugowania lub monitorowania aplikacji.
publicznoลฤ - Ten katalog zawiera pliki statyczne i skompilowane zasoby, takie jak pliki HTML, Javascript plikรณw, obrazรณw i arkuszy stylรณw.
prรณba โ W tym katalogu przechowywane sฤ pliki testowe, ktรณre piszesz w celu przetestowania funkcjonalnoลci aplikacji.
tmp โ Ten katalog zawiera pliki tymczasowe, takie jak pliki pamiฤci podrฤcznej i pliki pid.
sprzedawca - Ten katalog zawiera biblioteki innych firm.
plik klejnotรณw โ Ten plik okreลla, jakie sฤ Twoje podstawowe wymagania dotyczฤ ce klejnotรณw, aby uruchomiฤ aplikacjฤ internetowฤ . Moลผesz grupowaฤ klejnoty w fazie rozwojowej, testowej lub produkcyjnej, a Railsy bฤdฤ wiedzieฤ, kiedy uwzglฤdniฤ kaลผdy klejnot.
Gemfile.lock โ W przeciwieลstwie do pliku Gemfile, ktรณry wyraลบnie zawiera listฤ klejnotรณw, ktรณre chcesz umieลciฤ w swojej aplikacji, Gemfile.lock zawiera dodatkowo inne klejnoty, od ktรณrych zaleลผฤ te, ktรณre wymienisz w pliku Gemfile, a ktรณre sฤ nastฤpnie automatycznie instalowane w celu speลnienia zaleลผnoลci.
Readme.md โ Uลผywasz tego pliku, aby udostฤpniฤ istotne szczegรณลy dotyczฤ ce aplikacji, takie jak to, co aplikacja robi, jak zainstalowaฤ i uruchomiฤ aplikacjฤ.
Rakefile โ Plik ten zawiera rรณลผne definicje zadaล rake, co pomaga w automatyzacji codziennych zadaล administracyjnych aplikacji.
config.ru โ Jest to plik konfiguracyjny stojaka, ktรณry zapewnia interfejs do serwera WWW w celu uruchomienia aplikacji.
Zmieล katalog na โaplikacja do zrobieniaโ katalog Railsy wygenerowane i uruchomione โserwer szynowyโ aby uruchomiฤ aplikacjฤ. Typ localhost: 3000 w pasku adresu przeglฤ darki internetowej, jeลli wszystko poszลo dobrze, powinieneล zobaczyฤ poniลผszy rysunek.
To jest domyลlna strona gลรณwna Twojej aplikacji, ktรณrฤ zmienisz w dalszej czฤลci tego samouczka Ruby on Rails. Moลผesz zatrzymaฤ serwer, naciskajฤ c โCtrl-Cโ.
Railsy โ Generuj polecenia
Polecenie Rails generate wykorzystuje szablony do tworzenia wielu przydatnych rzeczy w Twojej aplikacji. Moลผesz uลผyฤ tych generatorรณw, aby zaoszczฤdziฤ duลผo czasu.
Pomaga w pisaniu standardowego kodu, kodu niezbฤdnego do dziaลania aplikacji internetowej. Moลผesz biegaฤ โgenerowanie szynโ 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ฤ โpolecenieโโ aby zobaczyฤ opis dziaลania polecenia. Oferuje wygodne opcje, ktรณre moลผna uruchomiฤ za pomocฤ polecenia i przykลadu uลผycia. Poniลผszy rysunek przedstawia wynik dziaลaniaโszyny generujฤ kontrolerโ:
Uลผyjesz polecenia Rails generate scaffold, aby automatycznie utworzyฤ model, widok i kontroler dla tworzonej aplikacji z listฤ zadaล do wykonania. Uruchomiฤ' szyny generujฤ rusztowanie lista rzeczy do zrobienia tytuล: ciฤ g opis: tekst' w swoim terminalu (sprawdลบ, czy nadal znajdujesz siฤ w katalogu todo_app).
Spowoduje to utworzenie peลnego interfejsu sieciowego CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie) dla tabeli TodoLists.
Kolejnym przydatnym poleceniem, ktรณre warto znaฤ, jest โszyny niszczฤ
โ, to odwraca cokolwiek โszyny generujฤ
โฆโ robi.
Szyny โ trasowanie
System routingu Railsรณw, router Rails, obsลuguje wszystkie ลผฤ dania przychodzฤ ce do Twojej aplikacji internetowej. Robi to poprzez sprawdzenie adresu URL przychodzฤ cych ลผฤ daล, a nastฤpnie odwzorowuje kaลผde ลผฤ danie na akcjฤ kontrolera odpowiedzialnฤ za jego obsลugฤ, uลผywajฤ c specjalnej skลadni okreลlonej w pliku tras (config/routes.rb).
Plik routes pomaga kontrolowaฤ kaลผdy aspekt adresu URL Twojej aplikacji internetowej. Rails domyลlnie uลผywa projektu RESTful opartego na stylu architektonicznym REST, ktรณry zapewnia mapowanie miฤdzy czasownikami HTTP i ลผฤ daniami (URL) na akcje kontrolera.
Plik tras zostaล wygenerowany podczas uruchamiania โszyny noweโ w poprzedniej sekcji tego samouczka. Kontynuujฤ c tworzenie aplikacji Todo, uruchom nastฤpujฤ ce polecenie'rails db:migrate' (wkrรณtce dowiesz siฤ, co to robi)
Upewnij siฤ, ลผe w wierszu poleceล nadal znajdujesz siฤ w katalogu gลรณwnym aplikacji (katalogu todo_app).
Nastฤpnie ponownie uruchom serwer za pomocฤ
โserwer szynowyโ. Rodzaj http://localhost:3000/todo_lists/ w przeglฤ
darce i naciลnij Enter. Powinieneล otrzymaฤ stronฤ internetowฤ
, jak pokazano na poniลผszym rysunku przykลadu Ruby on Rails:
To jest widok list zadaล do wykonania wygenerowany przez polecenie scaffold i kontrolowany przez akcjฤ indeksowania elementu TodoListsController.
ลmiaลo, dodaj listฤ rzeczy do zrobienia, klikajฤ c โNowa lista rzeczy do zrobieniaโ na stronie. Powinieneล otrzymaฤ stronฤ jak pokazano poniลผej:
Zwrรณฤ uwagฤ, ลผe adres URL zostaล zmieniony na http://localhost:3000/todo_lists/new. To jest strona sลuลผฤ
ca do tworzenia nowej listy rzeczy do zrobienia i jest kontrolowana przez nowฤ
metodฤ/akcjฤ TodoListsController.
Wprowadลบ tytuล i opis listy zadaล do wykonania w formularzu, a nastฤpnie kliknij przycisk Utwรณrz listฤ zadaล do wykonania. Adres URL powinien zmieniฤ siฤ na http://localhost:3000/todo_lists/1, pokazany na poniลผszym rysunku przykลadowego kodu Ruby on Rails:
To jest strona pokazu listy rzeczy do zrobienia i jest kontrolowana przez metodฤ/akcjฤ show TodoListsController. Jeลli wrรณcisz do http://localhost:3000/todo_lists/, powinieneล teraz zobaczyฤ poniลผszy rysunek z dodanฤ
nowฤ
listฤ
rzeczy do zrobienia:
Railsy byลy w stanie zmapowaฤ rรณลผne ลผฤ dania (URL) na odpowiedniฤ akcjฤ TodoListsController, korzystajฤ c z definicji trasy w config/routes.rb.
Jeลli spojrzysz na ten plik, zobaczysz pojedynczฤ liniฤ โzasoby: listy rzeczy do zrobieniaโ, to domyลlny sposรณb Railsรณw na zapisywanie spokojnych tras. Ta pojedyncza linia tworzy siedem tras, wszystkie mapowane na kontroler TodoLists.
Zgodnie z przyjฤtฤ konwencjฤ , dziaลanie kaลผdego kontrolera jest rรณwnieลผ mapowane na konkretnฤ operacjฤ CRUD (tworzenie, odczyt, aktualizacja i usuwanie) w bazie danych.
Moลผesz biegaฤ โtrasy grabieniaโ w wierszu poleceล, aby zobaczyฤ rรณลผne trasy dostฤpne w aplikacji. Poniลผszy rysunek przedstawia wynik dziaลania โtrasy kolejoweโ w wierszu poleceล/terminalu.
Szyny โ widoki
Warstwa Widok jest jednym z elementรณw paradygmatu MVC i odpowiada za generowanie odpowiedzi HTML na kaลผde ลผฤ danie skierowane do Twojej aplikacji. Railsy domyลlnie uลผywajฤ ERB (Embedded Ruby), ktรณry jest potฤลผnym systemem szablonรณw dla Ruby.
ERB sprawia, ลผe โโpisanie szablonรณw jest ลatwe i ลatwe w utrzymaniu, ลฤ czฤ c zwykลy tekst z kodem Ruby w celu zastฤpowania zmiennych i kontroli przepลywu. Szablon ERB ma rozszerzenie .html, .erb lub .erb.
Najczฤลciej bฤdziesz uลผywaฤ kombinacji tylko dwรณch znacznikรณw, z ktรณrych kaลผdy powoduje, ลผe osadzony kod bฤdzie przetwarzany i obsลugiwany w okreลlony sposรณb.
Znacznik ze znakiem rรณwnoลci '<%=%>' wskazuje, ลผe osadzony kod jest wyraลผeniem i ลผe wynik kodu powinien zostaฤ zastฤ piony przez moduล renderujฤ cy podczas renderowania szablonu.
Drugi tag bez znaku rรณwnoลci โ<%%>โ wskazuje moduลowi renderujฤ cemu, ลผe wynik kodu nie powinien byฤ zastฤpowany/drukowany podczas renderowania szablonu.
Kaลผdy kontroler w aplikacji Railsowej ma odpowiadajฤ cy mu podkatalog aplikacja/widoki, a kaลผda akcja/metoda w kontrolerze ma w tym katalogu odpowiedni plik .html i .erb.
Przyjrzyj siฤ aplikacji/widom aplikacji do zrobienia, ktรณrฤ tworzysz. Znajdziesz podkatalog o nazwie โlisty rzeczy do zrobieniaโ wewnฤ trz tego podkatalogu .html.erb pliki o nazwach odpowiadajฤ cych akcjom/metodom w pliku Listy zadaล sterownik.
Railsy โ ActiveRecord, wzorzec aktywnego rekordu i ORM
ActiveRecord jest implementacjฤ Ruby wzorca Active Record, ktรณry jest prostym wzorcem, w ktรณrym klasa reprezentuje tabelฤ, a instancja klasy reprezentuje wiersz w tej klasie.
ActiveRecord jest popularnie okreลlany jako ORM (Object Relational Mapping), technika umoลผliwiajฤ ca zarzฤ dzanie bazฤ danych przy uลผyciu jฤzyka, ktรณry najbardziej Ci odpowiada. Jest niezaleลผny od bazy danych, dziฤki czemu moลผna ลatwo przeลฤ czaฤ siฤ miฤdzy bazami danych (na przykลad SQLite, MySQL, PostgreSQL, Serwer SQL, Oracleitp.). Ten pakiet bardziej odpowiada wymaganiom aplikacji z tym samym kodem/logikฤ .
Tak wiฤc, jeลli chcesz uzyskaฤ tablicฤ zawierajฤ cฤ listฤ wszystkich list rzeczy do zrobienia w aplikacji, zamiast pisaฤ kod inicjujฤ cy poลฤ czenie z bazฤ danych, wykonaj zapytanie SQL SELECT i przekonwertuj te wyniki na szyk.
W tym celu wystarczy wpisaฤ โTodoList.allโ a Active Record udostฤpnia tablicฤ wypeลnionฤ obiektami TodoList, ktรณrymi moลผesz bawiฤ siฤ wedลug wลasnego uznania.
Wszystko, co musisz zrobiฤ, to skonfigurowaฤ odpowiedniฤ konfiguracjฤ w config/baza danych.yml, a Active Record obliczy wszystkie rรณลผnice pomiฤdzy rรณลผnymi systemami baz danych. Wiฤc kiedy przeลฤ czasz siฤ z jednego na drugi, nie musisz o tym myลleฤ.
Skup siฤ na pisaniu kodu dla swojej aplikacji, a Active Record pomyลli o szczegรณลach niskiego poziomu poลฤ czenia z bazฤ danych. Active Record korzysta z konwencji nazewnictwa, aby tworzyฤ mapowanie miฤdzy modelami i tabelami bazy danych.
Railsy dokonujฤ liczby mnogiej nazw klas modelu, aby znaleลบฤ odpowiedniฤ tabelฤ bazy danych. Zatem dla klasy TodoList ActiveRecord utworzy tabelฤ bazy danych o nazwie TodoLists.
Szyny โ Migracje
Migracja Railsรณw to po prostu skrypt, ktรณrego uลผywasz do edycji bazy danych aplikacji. Sลuลผy do konfigurowania lub zmiany bazy danych i pozwala uniknฤ ฤ rฤcznego pisania kodu SQL w tym celu.
Uลผywa jฤzyka Ruby do definiowania zmian w schemacie bazy danych i umoลผliwia stosowanie kontroli wersji w celu zachowania synchronizacji bazy danych.
Migracje Railsรณw wykorzystujฤ jฤzyk specyficzny dla domeny Ruby (DSL). Dziaลa to jak abstrakcja i umoลผliwia uลผycie lub zmianฤ silnika bazy danych w zaleลผnoลci od wymagaล.
Moลผna je udostฤpniaฤ kaลผdemu, kto pracuje nad aplikacjฤ , a takลผe moลผna je wycofaฤ, aby cofnฤ ฤ wszelkie zmiany w bazie danych. Jest to mechanizm o wysokim poziomie bezpieczeลstwa, poniewaลผ nie musisz siฤ martwiฤ trwaลym uszkodzeniem bazy danych.
Railsy โ skojarzenia ActiveRecord
Poลฤ czenie miฤdzy dwoma modelami ActiveRecord jest znane jako asocjacja. Asocjacja znacznie uลatwia wykonywanie operacji na rรณลผnych rekordach w kodzie. Moลผna jฤ podzieliฤ na cztery kategorie: โ
One to One: โ Oznacza, ลผe โโrekord zawiera dokลadnie jednฤ instancjฤ innego modelu. Dobrym przykลadem jest profil uลผytkownika. Uลผytkownik ma tylko jeden profil. To uลผywa ma jeden sลowo kluczowe.
Jeden za duลผo: โ Jest to najczฤstsze skojarzenie, ktรณre wskazuje, ลผe jeden model ma zero lub wiฤcej wystฤ pieล innego modelu. Twรณj uลผytek ma _wiele sลowo kluczowe oznaczajฤ ce to powiฤ zanie.
Wiele do wielu: โ To skojarzenie jest nieco bardziej skomplikowane i ActiveRecord zapewnia dwa sposoby poradzenia sobie z nim. Uลผywajฤ c ma_i_naleลผy_do_wielu oraz ma wiele, co daje dostฤp do relacji zdefiniowanej w osobnej tabeli.
Polimorficzny jeden do wielu:- Jest to bardziej zaawansowane powiฤ zanie dostฤpne w Railsach. Moลผna go uลผyฤ do zdefiniowania modelu, ktรณry moลผe naleลผeฤ do wielu rรณลผnych modeli w ramach jednego skojarzenia.
Railsy โ weryfikacja ActiveRecord
Walidacja pomaga upewniฤ siฤ, ลผe masz prawidลowe dane, poniewaลผ praca z nieprawidลowymi danymi jest okropna i moลผe kosztowaฤ Twoje pieniฤ dze i firmฤ.
Walidacja zapewnia takลผe dodatkowฤ warstwฤ zabezpieczeล aplikacji przed zลoลliwymi uลผytkownikami, ktรณrzy chcฤ uzyskaฤ dostฤp do informacji w bazie danych. Railsy oferujฤ ลadne API pomocy przy sprawdzaniu poprawnoลci w ActiveRecord, dziฤki czemu Twoja baza danych jest czysta, bezpieczna i wolna od bลฤdรณw.
Walidacja ActiveRecord jest przeprowadzana na obiektach modelu przed zapisaniem w bazie danych, co czyni je bardziej niezawodnymi i stanowi najlepszฤ praktykฤ do stosowania podczas tworzenia aplikacji.
Nastฤpujฤ ce metody ActiveRecord wywoลujฤ walidacje, gdy sฤ uลผywane lub wywoลywane na obiektach modelu โ twรณrz, twรณrz!, zapisuj, zapisuj!, aktualizuj i aktualizuj!. Te z hukiem (twรณrz!, oszczฤdzaj! i zaktualizuj!) zgลoล wyjฤ tek, jeลli rekord jest nieprawidลowy, chociaลผ nie jest to prawdฤ .
Najczฤลciej dostฤpnymi pomocnikami w sprawdzaniu poprawnoลci ActiveRecord sฤ : -
Potwierdzenie:โ Ten pomocnik sprawdzania poprawnoลci jest przydatny do sprawdzania poprawnoลci dwรณch pรณl zawierajฤ cych ten sam wpis. np. hasลo i potwierdzenie hasลa, jest uลผywane w poลฤ czeniu z pomocnikiem sprawdzania obecnoลci.
Obecnoลฤ:โ Sprawdza, czy pole nie jest puste.
unikalnoลฤ: zapewnia unikalnฤ wartoลฤ pola, np. nazwฤ uลผytkownika
Dลugoลฤ:- Aby wymusiฤ ograniczenie dลugoลci znaku w polu
Moลผesz takลผe utworzyฤ niestandardowฤ weryfikacjฤ, korzystajฤ c z metody validation i przekazujฤ c jej nazwฤ niestandardowej metody sprawdzania poprawnoลci.
Moลผesz sprawdziฤ model bลฤ d obiekt, aby dowiedzieฤ siฤ, dlaczego walidacja. Mamy nadziejฤ, ลผe masz kilka pomysลรณw na ograniczenie i zwiฤkszenie bezpieczeลstwa aplikacji, tak aby do bazy danych mogลy trafiaฤ wyลฤ cznie bezpieczne dane.
Railsy โ ActionController
Kontroler Rails jest centrum Twojej aplikacji internetowej. Uลatwia i koordynuje komunikacjฤ pomiฤdzy uลผytkownikiem, modelami i widokami.
Klasy kontrolerรณw dziedziczฤ z klasy ApplicationController, ktรณra zawiera kod, ktรณry moลผna uruchomiฤ na wszystkich innych kontrolerach i dziedziczy z klasy ActionController.
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. Zarzฤ dza takลผe sesjami uลผytkownikรณw, zapewniajฤ c im pลynne korzystanie z aplikacji.
Szyny โ konfiguracje
Moลผesz skonfigurowaฤ rรณลผne komponenty, takie jak inicjatory, zasoby, generatory, middleware itp., uลผywajฤ c inicjatorรณw aplikacji Rails i plikรณw konfiguracyjnych w katalogu config. Pliki takie jak config/application.rb, config/environments/development.rb i config/environments/test.rb itp. Moลผesz rรณwnieลผ skonfigurowaฤ niestandardowe ustawienia dla swojej aplikacji.
Railsy โ debugowanie
W miarฤ tworzenia aplikacji nadejdzie czas, gdy bฤdziesz musiaล/musiaลa debugowaฤ swรณj kod. Railsy uลatwiajฤ to przy uลผyciu klejnotu byebug. Sesjฤ debugowania moลผna rozpoczฤ ฤ, umieszczajฤ c sลowo kluczowe โbyebegโ w dowolnym miejscu kodu aplikacji.
Spowoduje to tymczasowe zatrzymanie wykonywania w tym momencie. Klejnot byebug udostฤpnia kilka poleceล do uลผycia. Najbardziej przydatne to:
- Nastฤpny: polecenie umoลผliwiajฤ ce przejลcie do nastฤpnej linii kodu z pominiฤciem wszystkich metod wywoลanych wykonaniem bieลผฤ cej linii.
- krok: jest to podobne do polecenia โnastฤpnyโ, ale powoduje przejลcie do kaลผdego wywoลanego polecenia.
- zลamaฤ: powoduje to zatrzymanie wykonywania kodu.
- kontynuowaฤ kontynuuje wykonanie kodu.
Dostฤpne sฤ inne pereลki do debugowania, takie jak โpryโ, i wszystkie zapewniajฤ podobne funkcjonalnoลci, ale nieco innฤ skลadniฤ. Klejnotรณw debugowania nie naleลผy uลผywaฤ w ลrodowisku produkcyjnym, poniewaลผ stwarza to ryzyko dla aplikacji i zลe doลwiadczenia dla uลผytkownikรณw aplikacji.
Istniejฤ pliki dziennika, ktรณre moลผna sprawdziฤ pod kฤ tem bลฤdรณw w produkcji i je obsลuลผyฤ. Podczas opracowywania aplikacji naleลผy stosowaฤ podejลcie TDD (programowanie oparte na testach), aby przed wdroลผeniem w ลrodowisku produkcyjnym upewniฤ siฤ, ลผe wszystko dziaลa dobrze.
Podsumowanie
- Ruby jest czysto obiektowym jฤzykiem programowania
- Ruby ma eleganckฤ skลadniฤ, ktรณra jest ลatwa do odczytania i zapisu.
- Rails to framework programistyczny napisany w jฤzyku Ruby do tworzenia aplikacji internetowych
- Proces instalacji bฤdzie zaleลผaล od Twojego systemu operacyjnego.
- Railsy sฤ spakowane jako klejnot Ruby i moลผna ich uลผywaฤ do tworzenia rรณลผnorodnych aplikacji.
- W tym samouczku utworzysz aplikacjฤ z listฤ zadaล do wykonania. Uruchom polecenie followincomm'n'n' 'rails netoda'p'p'p' w terminalu R, aby utworzyฤ aplikacjฤ.
- Polecenie Rails generate wykorzystuje szablony do tworzenia wielu przydatnych rzeczy w aplikacji.
- System routingu Rails, router Rails pomaga obsลuลผyฤ wszystkie ลผฤ dania przychodzฤ ce do Twojej aplikacji internetowej.
- Warstwa Widok jest jednym z elementรณw paradygmatu MVC i odpowiada za generowanie odpowiedzi HTML na kaลผde ลผฤ danie skierowane do Twojej aplikacji.
- ActiveRecord jest implementacjฤ Ruby wzorca Active Record.
- Migracja Railsรณw to po prostu skrypt, ktรณrego uลผywasz do edycji bazy danych aplikacji.
- Poลฤ czenie pomiฤdzy dwoma modelami ActiveRecord nazywane jest skojarzeniem.
- Walidacja pomaga upewniฤ siฤ, ลผe masz prawidลowe dane, poniewaลผ praca z nieprawidลowymi danymi jest okropna i moลผe kosztowaฤ Twoje pieniฤ dze i firmฤ.
- Kontroler Rails pomaga uลatwiฤ i koordynowaฤ komunikacjฤ pomiฤdzy uลผytkownikiem, modelami i widokami.
- Rail pomaga skonfigurowaฤ rรณลผne komponenty, takie jak inicjatory, zasoby, generatory, oprogramowanie poลredniczฤ ce itp.













