#はじめに
Ruby on Rails 2 Advent Calendar 2019の16日目の記事になります!
今回はRailsのルーターの基本的な記述についてまとめてみました。
#railsのルーティングとは
どのURLにアクセスすることで、何を行うか決定するのがルーティングとなります。
Ruby on Railsではroutes.rbにルーティングの設定情報を記述していきます。
routes.rbはアプリ名/config/routes.rbのパスに存在します。
#主な記法
####rootメソッド
トップページ(例えば、「http://localhost:3000/」)を開いたとき,
特定のアクションを呼び出すよう設定ができます。
以下に記述例を書いていきます。
root :to => 'コントローラ名#アクション名'
#下記ではトップページを開いたときtopコントローラーのindexアクションを呼び出すよう設定しています。
Rails.application.routes.draw do
root :to => 'top#index'
end
####resourcesメソッド
resourcesメソッドを用いてルーティングを設定すると、
そのリソースに応じた複数のルーティングが一度に設定できます。
RESTful(RESTに従っていること)なアプリケーションを作る際にも利用することになると思います。
以下に記述例を示します。
Rails.application.routes.draw do
resources :posts
end
上記の記法で以下と同じ意味合いとなります。
↓
get '/posts', to: 'posts#index'
get '/posts/:id', to: 'posts#show'
get '/posts/new', to: 'posts#new
get '/posts/:id/edit', to: 'posts#edit
post '/posts', to: 'posts#create
patch '/posts/:id', to: 'posts#update'
delete '/posts/:id', to: 'posts#destroy'
#onlyをつけることで必要なルーティングのみ出来上がります。
#下記の場合、index,showのみ有効となります。
resources :コントローラー名, only: [:index, :show]
####その他
ルーティングはそれぞれ個別に書くこともできます。
Rails.application.routes.draw do
#toを用いたり=>を用いたりする記法がありますが結果としては同じ意味になります。
get '/posts', to: 'photos#index'
get "hogehoge/new" => "hogehoge#new"
post '/posts', to: 'photos#create'
post "hogehoge" => "hogehoge#create"
end
#終わりに
この記事で誤っている箇所や追記したほうが良い点がありましたらコメント欄などでご指摘いただけますとありがたいです!
ルーティング1つとっても、いろいろ記法があるので用途に合わせて楽できるよう書いていきたいですね!