背景
学び始めでのルーティングをする際、getを使わなきゃだとか、resource、ヘルパーメソッドって何だったか…?となり毎回検索しては忘れてしまうのでここにまとめを。
ルーティングのやり方
◆個別設定
1行ずつ設定する方法。1行1行手入力しないといけないので少し面倒。
一括設定する方法もある。
get 'URLに追加', to: 'コントローラのアクション'
例: get 'index', to: 'posts#index'
これをURLにすると→ http://localhost:3000/index
◆一括設定
resourcesを使う。
これらのメソッドは、railsで定義されている7つのアクションを自動で生成してれる。
▼7つのアクションとは
アクション名 | 役割 |
---|---|
index | リソースの一覧を表示させる |
show | リソースの詳細を表示させる |
new | 投稿フォームを表示させる |
create | リソースを追加させる |
edit | 更新フォームを表示させる |
update | リソースを更新させる |
destroy | リソースを削除する |
resources :コントローラー名,:コントローラー名...
コンソールにてrails routesコマンドで、ルーティングを確認できる。
また、アクションを指定したいときには下記のように記述。
resources :コントローラー名,only:[:index, :new]
resouce(最後に"s"が無い)メソッドでも出来るが、コントローラの7つのアクションに対して、indexとid付きのパスが生成され無いため、show, editアクションの実行に、idが必要ない場合に有効。
HTTPメソッドについて
◆HTTPメソッドとは
HTTPメソッドとは、「クライアントがサーバーにしてほしいことを依頼するための手段。
▼比較的多く使われるメソッド
メソッド | 役割 |
---|---|
get | データの取得 |
post | データの送信(主に新規作成) |
put | データの送信(主に既存データの更新) |
delete | データの削除 |
getとpostの違い
get
主にサーバーからブラウザに情報を返す時に使われる。単にウェブページを参照する際にはこのメソッドが利用される。
post
ブラウザからサーバーに情報を送信するときに使うメソッドで、入力フォームのデータをブラウザからサーバーに送信するときなどに使われている。
getメソッドとは異なり、リクエスト内容をHTTP通信のbody部に含めることで、URLにその内容が表れない通信方式。
代わりに、リクエストボディ内に内容が含まれているため、URLを直接入力するだけでは同じ通信を再現することはできない。
_pathと_urlの違い
_path
・相対パス
・redirect_to以外で使用
_url
・絶対パス
・redirect_toの時にセットで使用する。(HTTPの仕様上、リダイレクトのときに完全なURLが求められるため
相対パスと絶対パスの違い
相対パス
URLでページを指定して、目的地(情報)がどこにあるのかを確実に伝える。
たとえば実際に道案内をするときに、目的地の住所(URL)を教えるのが絶対パスの伝え方。
絶対パス
今いる場所(階層)を基準にして、目的地(情報)がどこにあるのかを伝える。
ある地点から道を曲がって道路沿いのつきあたりを右…というように、今いる場所から目的地までの経路を案内するのが相対パスの伝え方。
参考記事
【Rails入門】ルーティング (config/routes.rb)の書き方を説明!
【Rails】 resourcesメソッドを使ってルーティングを定義しよう!
resourcesとresourceの違いについて!
Web開発でよく使う4つのHTTPメソッド【REST API】
GETメソッドとPOSTメソッドの違いとSEO面からの使い分け
_pathと_urlの違いについて調べてみた
これだけは覚えておきたい!絶対パスと相対パスの違いとは【初心者向け】