Trasy i zasoby
Routing RESTful
Trasy i zasoby to bezpłatna lekcja Ruby Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ruby Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Czym jest routing
Routing przypisuje przychodzące żądanie HTTP (metodę wraz ze ścieżką) do akcji kontrolera, która je obsługuje. Plik tras jest punktem wejścia aplikacji Rails.
- Trasy znajdują się w
config/routes.rb. - Każda trasa łączy adres URL z elementem
controller#action. - Rails dopasowuje trasy od góry do dołu.
Podstawowa trasa
Najprostsza trasa przypisuje ścieżkę do akcji za pomocą get. Żądanie GET do /about wywołuje tutaj akcję about kontrolera PagesController.
Rails.application.routes.draw do
get "/about", to: "pages#about"
endMetody HTTP
Każda trasa określa metodę sygnalizującą zamiar:
getodczytuje dane.posttworzy dane.patch/putaktualizuje dane.deleteusuwa dane.
Ta sama ścieżka użyta z różnymi metodami może prowadzić do różnych akcji.
Zasoby RESTful
Metoda pomocnicza resources jednym wierszem generuje siedem standardowych tras REST dla modelu. To podstawa konwencjonalnego routingu w Rails.
Rails.application.routes.draw do
resources :articles
endSiedem akcji
resources :articles tworzy trasy dla:
index— listy,show— pojedynczego elementu.new— formularza,create— zapisu.edit— formularza,update— zapisu.destroy— usuwania.
Obejmuje to pełny cykl życia zasobu.
Pomocniki ścieżek
Trasy generują nazwane pomocniki, dzięki czemu nie trzeba wpisywać adresów URL na sztywno. resources :articles udostępnia articles_path, article_path(@article), new_article_path oraz edit_article_path(@article).
articles_path # => "/articles"
article_path(5) # => "/articles/5"
new_article_path # => "/articles/new"
edit_article_path(5) # => "/articles/5/edit"Ograniczanie akcji
Za pomocą only lub except można wygenerować tylko potrzebne trasy. Dzięki temu zakres routingu pozostaje niewielki i celowy.
resources :articles, only: [:index, :show]
resources :comments, except: [:edit, :update]Zagnieżdżone zasoby
Zasoby można zagnieżdżać, aby wyrazić relację własności w adresie URL. Komentarze należące do artykułu stają się dostępne pod adresem /articles/1/comments. Zagnieżdżona trasa przekazuje do kontrolera parametr article_id.
resources :articles do
resources :comments
end
# GET /articles/1/commentsTrasa główna
root określa, co zostanie załadowane pod adresem /, czyli na stronie głównej aplikacji. Dla zachowania przejrzystości należy umieścić ją blisko początku pliku tras.
Rails.application.routes.draw do
root "articles#index"
endSprawdzanie tras
Proszę uruchomić rails routes, aby wyświetlić każdą trasę wraz z jej metodą, ścieżką, pomocnikiem i elementem controller#action. To najszybszy sposób na zrozumienie routingu aplikacji lub znalezienie w nim błędu.
Trasy member i collection
Do zasobu można dodać niestandardowe akcje:
- Trasy
memberdziałają na jednym rekordzie:/articles/1/publish. - Trasy
collectiondziałają na całym zbiorze:/articles/search.
resources :articles do
member { post :publish }
collection { get :search }
endSzybki test
Proszę sprawdzić, czy rozumieją Państwo routing.
Podsumowanie: trasy i zasoby
Poznali Państwo routing RESTful:
- Trasy przypisują metodę wraz ze ścieżką do elementu
controller#action. resourcesgeneruje siedem standardowych tras.- Pomocniki ścieżek eliminują konieczność wpisywania adresów URL na sztywno.
only/except, zagnieżdżanie oraz trasymembericollectionpozwalają dostosować ich zestaw.rootustawia stronę główną, arails routeswyświetla wszystkie trasy.
Następnie utworzymy kontrolery obsługujące te żądania.
Często zadawane pytania
Czy lekcja „Trasy i zasoby” jest bezpłatna?
Tak — pełny tekst „Trasy i zasoby” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ruby Academy, przejdź na CoddyKit PRO. Kurs Ruby Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Trasy i zasoby”?
Routing RESTful Ćwiczysz Ruby Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Ruby Academy?
Nie wymagamy żadnego doświadczenia. Ruby Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Trasy i zasoby”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Ruby Academy?
Tak. Każda lekcja Ruby Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Trasy i zasoby
- Kontrolery i akcje
- Silne parametry
- Widoki i renderowanie