Ruby onRails(PicTweet) ツイートの詳細を表示しよう編

showで詳細表示をする

手順

1ツイート詳細画面よルーティングを記述

詳細画面のパスは編集や削除と同じくツイートごとに管理する

idが1の詳細画面は/tweets/1のようなパスになる

resourcesの最後に:showを追加

コードがスッキリするのでonlyオプションの記述を削除する

2ツイート詳細画面へのリンクを作成
下記で詳細画面へリンクするボタンを追加

<li>

<%= link_to '詳細', tweet_path(tweet.id), method: :get %>

</li>

3tweets_controllerにshowアクションを作成

ツイート詳細画面に必要な情報を、データベースから取得するためにshowアクションを定義

このときshowアクションでは、詳細を表示したいツイートの情報をビューに受け渡すだけ

def show

@tweet = Tweet.find(params[:id])

end

4ツイート詳細画面のビューを追加

tweetsコントローラーのshowアクションに対応する「投稿詳細画面」を作っていく

まず必要なビューファイルをつくり、コードを書く

f:id:kikiMustang:20201117221258j:image

ここで同じコードをメソッドにまとめる

ここではbefore_actionを利用して、edit、showの2つのアクションの前に実行される、set_tweetというメソッドを定義した

before_action :set_tweet,only: [:edit, :show]

そしてeditとshowの中のコードを消した

 

まとめとして

resourcesは、7つのアクションのルーティングをまとめて設定できるメソッドのこと

before_actionは、コントローラで定義されたアクションが実行される前に、指定した共通の処理を行うことのできるメソッド