環境
- 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
を引数として指定する