Routes

Intro

ΠžΠΏΠΈΡΠ°Π½Ρ‹ Π² /config/route.rb ΠΈ скриптах /config/routes/... .

ΠŸΡ€ΠΎ DSL Rails Routes: https://guides.rubyonrails.org/routing.html

Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пСрСнаправляСт url Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ ΠΈΠ»ΠΈ Rack ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π½Π΅ Ρ…Π°Ρ€Π΄ΠΊΠΎΠ΄ΠΈΡ‚ΡŒ Π² ΠΊΡƒΡ‡Π΅ мСст строки.

Если всС зависимости Ρƒ вас локально подтянуты, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ всС Ρ€ΠΎΡƒΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ :

./bin/rails routes

Routing to Rack: https://guides.rubyonrails.org/routing.html#routing-to-rack-applications

Routes directives

resources

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ эндпоинты для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ рСсурса. НапримСр:

Rails.application.routes.draw do
    resources :photos
end

создаст сСмь эндпоинтов, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Photos:

HTTP Verb
Path
Controller#Action
Used for

GET

/photos

photos#index

display a list of all photos

GET

/photos/new

photos#new

return an HTML form for creating a new photo

POST

/photos

photos#create

create a new photo

GET

/photos/:id

photos#show

display a specific photo

GET

/photos/:id/edit

photos#edit

return an HTML form for editing a photo

PATCH/PUT

/photos/:id

photos#update

update a specific photo

DELETE

/photos/:id

photos#destroy

delete a specific photo

Π’Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π±Π»ΠΎΠΊ рСсурса

Π§Ρ‚ΠΎ создаст ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ эндпоинты для ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ рСсурса ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΎΠΏ ΠΎΠΏΡ†ΠΈΠΈ:

Singular Resources

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Π½Π°ΠΌ Π½Π΅ Π½Π°Π΄ΠΎ ΠΊΡƒΡ‡Ρƒ эндпоинтов для рСсурсов.

namespaces

ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ Ρ€ΠΎΡƒΡ‚Ρ‹ Π² Π³Ρ€ΡƒΠΏΠΏΡ‹:

scope

Если ΠΌΡ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΏΡƒΡ‚ΠΈ Π±Ρ‹Π» /admin, Π½ΠΎ Ρ…ΠΎΡ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сущСствовала логичСская Π³Ρ€ΡƒΠΏΠΏΠ° β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ scope:

If instead you want to route /admin/articles to ArticlesController (without the Admin:: module prefix), you can specify the path with a scope block:

concern

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Ρ€ΠΎΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€ΠΎΡƒΡ‚Π°Ρ…. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ мСньшС ΠΊΠΎΠ΄Π° Ρ‚Π΅ΠΌ самым

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΌΠΎΠΆΠ½ΠΎ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈ Π² namespaces)

draw

Π­Ρ‚ΠΎ примСняСтся для создания макросов. Для Ρ‚Π΅Ρ… случаСв, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ вынСсти Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΎΠ² Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

А Ρ‚Π°ΠΊ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² Π³Π»Π°Π²Π½ΠΎΠΌ route-ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅:

Или ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π±Π΅Π· ΠΎΠ±ΠΎΡ€ΠΎΡ‚Π° Π² routes.draw (ΠΊΠ°ΠΊ ΠΌΠ½Π΅ каТСтся это ΠΏΡ€ΠΎΡ‰Π΅)

Last updated