LoginSignup
0
1

More than 1 year has passed since last update.

【Rails】routes概要

Last updated at Posted at 2021-11-24

##概要
railsのroutes.rbに記述するルーティングについてのまとめ。

##内容

####ルーティングとは
受け取ったurlを認識し、適切なコントローラ内アクションやアプリケーションに割り当てる機能。

####構文

httpメソッド 'urlパターン', to: 'コントローラ#アクション'

#####ex) 以下のhttpリクエストを受け取った場合、以下のようになる。

GET /patients/17

routes.rb

get '/patients/:id', to: 'patients#show'

HTTPメソッド

クライアントから送られたリクエストの種別を表すもの。

####get 
ページを表示する操作。

####post 
データを登録する操作。

####put 
データを変更する操作。

####delete 
データを削除する操作。

###rootの設定 
http://localhost:3000 / にアクセスした際にアクションを呼び出す際に使う。

root to: 'home#index'

###ネスト 
一対多(一つの投稿に複数のコメント)の場合、urlは「https://×××××××/post/id/comment/id」のようになる。このような場合にルーティングをネストさせる。

resources :post do
  resources :comment
end

###resources 
7つのアクションのルーティングを自動定義する。

resources :コントローラー名

resources :コントローラー名, :コントローラー名
#複数コントローラのルーティングを一行で定義することもできる。

###only 

resources :tweets, only: [:index, :snow] -->

#indexとshowのみを指定して定義できる

###resource 
resourcesは複数形リソースな為、indexやid付のルーティングが生成されるが、
resourceは単数系リソースな為、idの無いリソースを生成できる。
例えば、マイページのような「ログインしているユーザー自身」のデータを表示する際はidを付ける必要が無い為、showアクションの/profile/:idではなく/profileを割り当てることができる。

###namespace 
指定したルーティングの配下にルーティングを設定する.

名前空間でコントローラを分ける時などに使う。

admin画面の場合

namespace :admin do
   resources :articles
end

生成されるurl

/admin/articles/:id

###member 
特定のデータに対するアクションに対して利用する。
ユーザーidを含んだurlにアクセスできる。

ex)ユーザーに対するふフォロー機能を追加する時
  以下のようなurlを想定。

http://$(DNS)/users/1/follow

memberを使ったurlは以下のようになる。

resources :users do
	member do
      post :follow
	end
 end

#memberルーティングが一つしかない場合は、onオプションを利用して1行で書ける

resources :users do
    post :follow, on: :member
end

###collection 
全てのデータに対するアクションに利用する。

ex) searchアクションでユーザー検索を行う
  以下のようなurlを想定。

http://$(DNS)/users/search

collectionを使った記述は以下のようになる。

resources :users do
    get :search, on: :collection
  end
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1