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アクションに対応する「投稿詳細画面」を作っていく
まず必要なビューファイルをつくり、コードを書く
ここで同じコードをメソッドにまとめる
ここではbefore_actionを利用して、edit、showの2つのアクションの前に実行される、set_tweetというメソッドを定義した
before_action :set_tweet,only: [:edit, :show]
そしてeditとshowの中のコードを消した
まとめとして
resourcesは、7つのアクションのルーティングをまとめて設定できるメソッドのこと
before_actionは、コントローラで定義されたアクションが実行される前に、指定した共通の処理を行うことのできるメソッド