江の島エンジニアBlog
Rails4でRESTfulアプリケーションの7アクション+αを作る(第3回)
Rails

newアクションで記事投稿フォームを作る

これまでindexアクションとshowアクションでRESTfulな記事一覧&表示機能を実装してきましたが、今回からは記事投稿機能を実装します。まずはnewアクションで投稿フォームの作成を行います。 (2014/10/03)

newアクションで記事投稿フォームを作る

記事投稿フォーム表示機能のルーティング設定

まずはroutes.rbでルーティング設定を行います。

記事投稿フォーム表示にはnewアクションを使うので

# config/routes.rb
namespace :blog do
  resources :posts, only: [:new]
end

と設定します。

設定してからルーティングを確認すると

$ rake routes
new_blog_post GET /blog/posts/new(.:format) blog/posts#new

という行が出力されます。

  1. Prefixはnew_blog_postで、new_blog_post_pathといったヘルパーでパスを取得できる
  2. /blog/posts/new(.:format)へのGETリクエストでアクセスできる
  3. blog_postsコントローラのnewアクションを実行する

ということがわかります。

記事投稿フォーム表示機能のコントローラ

コントローラではnewアクションを実装します。

newアクションでは表示用の記事データを取得する必要があるので

# app/controllers/blog/posts_controller.rb
def new
  @post = Blog::Post.new
end

というように投稿フォーム用のBlog::Postオブジェクトを作成します。

記事投稿フォーム表示機能のビュー

newアクションのビューでは記事投稿フォームを表示します。

/ app/views/blog/posts/new.html.slim
= form_for @post, url: blog_posts_path do |f|
  = f.text_field :title
  = f.text_area :content
  = f.submit "投稿する"

次は今回作成した記事投稿フォームから送信したデータを受け取って記事を作成するcreateアクションの実装を行います。

  • このエントリーをはてなブックマークに追加
  • follow us in feedly