LoginSignup
0
1

More than 3 years have passed since last update.

rails routesからパスを作る

Last updated at Posted at 2021-02-21

環境

  • AWS cloud9 EC2
  • ruby 2.6.3
  • Rails 5.2.4.3

アクションのパスを作る方法

ルーティングの確認

 rails routesを実行する

Terminal
vocstartsoft:~/environment/***** $ rails routes

         Prefix Verb   URI Pattern                                                                              
          books GET    /books(.:format)                 books#index
                POST   /books(.:format)                 books#create
       new_book GET    /books/new(.:format)             books#new
      edit_book GET    /books/:id/edit(.:format)        books#edit
           book GET    /books/:id(.:format)             books#show
                PATCH  /books/:id(.:format)             books#update
                PUT    /books/:id(.:format)             books#update
                DELETE /books/:id(.:format)             books#destroy

アクションのパスを作成

1. 一番右の列を見る

飛びたいアクションを確認する
(例:book#edit

2.一番左の列を見る(Prefix)

1で確認した行のPrefixの列を確認する
※もし空白の場合は、直近の上のものを使用する。
(例:edit_book

3._pathをつける

2で確認したものに _path をつける。
(例:edit_book_path

4.URI Patternの列を見る

URI Patternの列を見て :id があるか確認する。

  • idがなかったら
    3で作成したものがパスになる
  • idがあったら
    3で作成したものに引数をしてして:idを指定する
    (例:edit_book_path(@book.id))

5.HTTPメソッドを確認する

link_toなどではデフォルトでGETが行われるようになっている。
=>そのため、GET以外の場合は指定する必要がある。

  • 指定方法
    pathの後に、, method: :httpメソッドを付け加える
    (例:book_path(@book.id), method: :delete)

何故:idが必要なのか

表示したViewページが:idによって違う内容にする必要があるかどうかを考える

  • :idがないbooks#index books#newなどは、一覧の表示や新規作成のため、特定の:idを必要としない
  • :idがあるbooks#edit books#showなどは、特定の:idについての表示をする必要があるため、表示させたい:idを引数として指定する
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