New engineer who will be one serving in 100 days (4th day)
Good evening, it's already the 5th day. Today's topic is about Rails routes. When I looked it up, there were quite a few rules, so I would like to summarize them.
The Rails router will recognize the URL it receives and assign it to the appropriate in-controller action.
GET /patients/17
When there is a request with such a URL
get '/patients/:id', to: 'patients#show'
Assigned to the show action on the patients controller. The 17 part corresponds to: id. After to:, it is associated with the feeling of'controller #action'.
It is a guy who puts together various related requests into one action.
resources :users
Just write a line in routes like this and the following routes will be added
HTTP | path | controller#action |
---|---|---|
GET | /users | users#index |
GET | /users/new | users#new |
POST | /users | users#create |
GET | /users/:id | users#show |
GET | /users/:id/edit | users#edit |
PATCH/PUT | /uses/:id | users#update |
DELETE | /users/:id | users#destroy |
You can group by namespace.
namespace :admin do
resources :users
end
HTTP | path | controller#action |
---|---|---|
GET | /admin/users | admin/users#index |
GET | /admin/users/new | admin/users#new |
POST | /admin/users | admin/users#create |
GET | /admin/users/:id | admin/users#show |
GET | /admin/users/:id/edit | admin/users#edit |
PATCH/PUT | /admin/uses/:id | admin/users#update |
DELETE | /admin/users/:id | admin/users#destroy |
This way you can create routes in groups starting with / admin.
By the way, if you want to select and use some routes in resources
resources :articles do
resources :comments, only: [:index, :new, :create]
end
Just like this, you can specify the routes you want to use after only :. It's unlikely that you'll specify routes that you don't need.
You can use the: as option to name any routing.
get 'exit', to: 'sessions#destroy', as: :logout
The above routing creates logout_path and logout_url as the application's named routing helpers. Calling logout_path will return / exit. And so on: you can create a named routing with as.
Named routing is also created at the time of resources.
Basically, it seems that the url is often specified by a named route, so I recently feel that getting used to this method is quite important.
If you write everything, it seems infinite, so I'm done here today. If you don't understand, I want to get into the habit of checking the Rails guide each time.
*** 95 days to become a full-fledged engineer ***
Recommended Posts