LoginSignup
1
0

More than 3 years have passed since last update.

Ruby on Railsの基本的なルーティング

Last updated at Posted at 2019-12-17

はじめに

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つとっても、いろいろ記法があるので用途に合わせて楽できるよう書いていきたいですね!

1
0
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
1
0