前回 は、Post を新規作成する仕組みについて見て来ました。今回は、他の Post の操作について見て行きたいと思います。
6.3 個々の Post を表示する
index ページにある任意の Post の show
リンクをクリックした場合は、http://localhost:3000/posts/1
のような URL に遷移します。Rails はそのリソースのための show
アクションへの呼び出しとして解釈し、 :id
パラメータとして 1 を渡します。show
アクションについては、以下のとおりです。
1 2 3 4 5 6 7 8 9 10 |
|
show
アクションは、id の値でデータベース内にある単一のレコードを検索するために Post.fild
を使用します。レコードを検索した後、Rails は app/views/posts/show.html.erb
を使用して、検索結果を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
|
6.2 Posts を編集する
Post を新規作成したように、Post を編集するのも二段階のプロセスを踏みます。最初のステップは特定の Post に伴う edit_post_path(@post)
へのリクエストです。これは、Controller ないの edit
アクションを呼び出します。
1 2 3 4 |
|
繰り返しになりますが、new
アクションと同様に edit
アクションは form
Partial を使用しています。しかしながら、今回はフォームは PostController
への PUT アクションを行い、送信ボタンは “Update Post” と表示するでしょう。
この View によって作成されたフォームを送信すると、Controller内の update
アクションを呼び出すでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
update
アクションの中では、Rails はまず、編集中のデータベースのレコードを見つけるために、:id
パラメータを edit View から受け取ります。update_attributes
の呼び出しでは、リクエストから Post のパラメータ(ハッシュ)を取得し、このレコードに適用します。すべてがうまくいった場合は、ユーザーは Post の show
アクションへリダイレクトされます。なにか問題が会った場合には、問題を修正するために edit
アクションに戻るようにリダイレクトされます。
6.3 Post を削除する
最後に、任意の Post の destroy
リンクをクリックすると、id
に関連する destroy
アクションが呼び出されます。
1 2 3 4 5 6 7 8 9 10 11 |
|
Active Record の Model インスタンスにある destroy
メソッドはデータベースから対応するレコードを削除します。削除を行った後、表示するレコードが無いので、Rails はユーザーのブラウザーを Controller の index アクションにリダイレクトします。
次回へ続きます。