일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- DART
- C로 시작하는 컴퓨터 프로그래밍4판
- 日本語
- vscode
- 디지몬
- 건담베이스
- Spring
- メソッド
- 자바
- 비즈니스일본어
- springboot
- 一日一つメソッド
- java
- 연습문제
- Web
- rails
- 건담
- Python
- 単語
- 인프런
- html
- ruby
- jsp
- CSS
- 반다이몰
- javascript
- Flutter
- 일본어
- rails7
- nico
- Today
- Total
AR삽질러
Rails 一日一つメソッド (Day16) resourcesメソッド 본문
Rails 一日一つメソッド (Day16) resourcesメソッド
resourcesメソッドとは
- railsで定義されている7つのアクションのルーチィングを自動で作成するメソッドで、簡単にルーチィングを作成することができる。
- resourcesメソッドは、ルーチィングを記述する routes.rbの中で使用する。
Rails.application.routes.draw do
resources :Controoler名
end
resourcesメソッド使い方
- railsで定義されている7つのメソッド
Action名 | 役割 |
index | リソースの一覧を表紙される |
show | リソースの詳細を表紙する |
new | 投稿フォームを表紙させる |
create | リソースを追加する |
edit | 更新フォームを表紙させる |
update | リソースを更新する |
destroy | リソースを削除する |
routes.rb
Rails.application.routes.draw do
get 'users', to: 'users#index'
get 'users/:id', to: 'users#show'
get 'users/new', to: 'users#new'
post 'users', to: 'users#create'
get 'users/:id/edit', to: 'users#edit'
patch 'users/:id', to: 'users#update'
delete 'users/:id', to: 'users#destroy'
end
RESTとは
- Representational State Transferの略で、ユーザーがあらかじめ決められたリソースを定義し、それにそってアクションとhttpメソッドを関連つける考え方。
- どのアプリでも統一された書き方でコードを書いて可読性を高める。
resourcesの使い方
- reourcesメソッドはルーチィングを記述する routes.rbの中で使用する。
Rails.application.routes.draw do
resource :Controller名
end
Rails.application.routes.draw do
resources :users
end
複数のControllerのルーチィングを一行で定義することができる。
Rails.application.routes.draw do
resources :Controller名, :Controller名
end
onlyとexcept
- resourcesメソッドを使用した時、indexアクションとshowアクションだけを指定したい時は、onlyやexceptを使う。
Rails.application.routes.draw do
resources :users, only: [:index, :show]
end
Rails.application.routes.draw do
resources :users, except: [:new, :create, :edit, :update, :destroy]
end
prefixとは?
- railsで特定のラウトに使う名前を表す。
- 名前はURLヘルパーを作成する際に使用され、これによりビューやコントローラーで該当ルートを簡単に参照できるようになる。
1) URLヘルパー生成
- Prefixを使ってアプリケーションのラウトに名前をつけると、名前を持っているURLが自動に生成される。
- 例)prefixが new_userの場合、new_user_pathと new_user_urlのようなURLヘルパーが生成される。
Rails.application.routes.draw do
get 'user', to: 'users#show'
end
<%= link_to 'View Profile', profile_path %>
このラウトに名前は userになり、user_pathまたは user_urlのようなURLヘルパーを使うことがでくる。
ネストを定義する
ルーチィングがネストするときも resourcesメソッドを使うことができる。
resources :users do
resources :questions
end
7つのアクション以外のルーチィング設計
- railsで定義された7つのアクション以外のアクションを追加する場合はルーチィングの中で memberと collectionを使用する。
1) member
memberは idで指定した個々のリソースに対するアクションを定義する。
ユーザーのレビューが見れるreviewアクションを追加したいとき、レビューは必ず1人のユーザーがしている
/users/ユーザーのid/review
resources :users do
member do
get 'review'
end
end
2) collection
collectionはリソース全体に対するアクションを定義する。
resources :users do
collection do
get 'show'
end
end
'Ruby > RubyOnRails-日本語' 카테고리의 다른 글
Rails 一日一つメソッド (Day18) Associations (0) | 2024.01.09 |
---|---|
Rails 一日一つメソッド (Day17) respond_toメソッド (0) | 2024.01.08 |
初めてのRuby on Rails ミニQ&Aサイト開発 - 回答機能Controller, createAction, destroyAction(7) (2) | 2024.01.05 |
初めてのRuby on Rails ミニQ&Aサイト開発 - 改善、回答機能(6) (0) | 2024.01.05 |
Rails 一日一つメソッド (Day15) form_withメソッド (0) | 2024.01.04 |