Rails / Ruby

連載: Rails4でRESTfulアプリケーションの7アクション+αを作る

記事表示機能のルーティング設定

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

記事表示にはshowアクションを使うので

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

と設定します。

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

$ rake routes
blog_post GET /blog/posts/:id(.:format) blog/posts#show

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

読み方はindexアクションの時と同じで

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

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

記事表示機能のコントローラ

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

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

# app/controllers/blog/posts_controller.rb
before_action :set_blog_post, only: [:show]

def show
end

private
  def set_blog_post
    @post = Blog::Post.find(params[:id])
  end

というようにデータを取得します。

なお、idからの記事データの取得は他のアクションでも行う操作なのでbefore_actionで行うようにしています。

記事表示機能のビュー

showアクションのビューでは取得済みの記事データを表示します。

記事の内容を表示するのであれば

/ app/views/blog/posts/show.html.slim
h1 = @post.title
p = @post.content

と書くことができます。

ここまでで記事閲覧機能は完成しました。

次はnewアクションでの記事入力フォーム表示を行います。

関連記事