editアクションで記事編集フォームを作る
記事の投稿・閲覧ができるようになったので、次はeditアクションでRESTfulな記事編集フォーム表示を行います。
連載: Rails4でRESTfulアプリケーションの7アクション+αを作る
記事編集フォーム表示機能のルーティング設定
まずはroutes.rbでeditアクションのルーティング設定を行います。
と設定します。
設定してからルーティング情報を出力すると
$ rake routes
edit_blog_post GET /blog/posts/:id/edit(.:format) blog/posts#edit
となります。
確認すると
- Prefixは
edit_blog_post
で、edit_blog_post_path(blog_post.id)
といったヘルパーでパスを取得できる /blog/posts/:id/edit(.:format)
へのGET
リクエストでアクセスできるblog_posts
コントローラのedit
アクションを実行する
ということがわかります。
記事編集フォーム表示機能のコントローラ
コントローラではeditアクションを実装します。
editアクションでは編集用の記事データを取得して編集フォームを表示します。
このset_blog_postメソッドはshowアクションの実装の時に作成したメソッドを利用します。
記事編集フォーム表示機能のビュー
editアクションのビューでは取得済みの記事データを表示します。
Railsの場合は@postオブジェクトのtitleの値を自動的にフォームに反映してくれるのでvalueを明示的に指定する必要はありません。
次は記事編集フォームから送信した記事データをupdateアクションで更新します。