updateアクションで記事を更新する
前回は投稿済みの記事の編集フォームを表示できるようにしました。今回は編集フォームからデータを受け取ってupdateアクションで記事データを更新します。
連載: Rails4でRESTfulアプリケーションの7アクション+αを作る
記事更新機能のルーティング設定
まずはroutes.rbでupdateアクションのルーティング設定を行います。
と設定します。
設定してからルーティング情報を出力すると
$ rake routes
blog_post PATCH /blog/posts/:id(.:format) blog/posts#update
となります。
確認すると
- Prefixは
blog_post
で、blog_post_path(blog_post.id)
といったヘルパーでパスを取得できる /blog/posts/:id(.:format)
へのPATCH
リクエストでアクセスできるblog_posts
コントローラのupdate
アクションを実行する
ということがわかります。
記事更新機能のコントローラ
コントローラではupdateアクションを実装します。
updateアクションでは更新用の記事データをロードして、受け取ったパラメタで更新・保存します。
editアクションとcreateアクションを組み合わせたようになっていますね。
記事更新機能のビュー
updateアクションでもcreateアクションと同様にビューは用意しておらず、更新に成功したら記事一覧に、失敗したら再度記事編集フォームを表示するようにしています。
次回はdestroyアクションで記事を削除します。