【rails】「Read」showアクション

※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。

CRUD(クラッド)とは

Create・Read・Update・Delete のこと

Webアプリケーションの基本的な機能をすべて備えているものを「CRUDアプリ」という


Read

「Read」(GETリクエスト)の例

  • すべての記事を表示する
  • 特定の記事を表示する 等

【前提】ブログなどの記事には、ひとつずつ固有idが付与されている

そのため「URL.◯◯.◯◯/1」など、idを指定すると特定の記事を取得することができる

今回、実装したいこと

showアクション:特定の記事(詳細ページ)を表示させる


$ Article.find()

warp(ターミナル)で$ rails cを実行してコンソール画面を立ち上げる

$ Article.find(1)で記事のidを指定すると、記事を探してくる

 Article.find(1)
#<
Article id: 1, 
title: "title", 
content: "ブログだよ!!", 
created_at: "2024-08-10 05:14:56", 
updated_at: "2024-08-10 05:14:56"
>

↓ 探してきた記事をarticleに代入して、.idを確認するとちゃんと「1」である

article = Article.find(1)
article.id
1

resources :articles

resources」は、いろんなurlを用意してくれるrubyのツール

VScodeのroutes.rbにresources :articlesを入力する

「http://localhost:3000/rails/info/routes」にurlがたくさん生まれている


:showリンクを作る

showのアクションだけ作れたらいいので、以下を入力する

resources :articles, only: [:show]

↓ showのurlができている


Article.find(params[:id])

特定の記事を探してくる

  1. paramsはパラメーターのこと
  2. [:id]で、現在表示しているurl末尾の「:id」を取得
  3. 該当idの記事をArticleから探してくる

探してきた記事を「@article」に代入する

def show
 @article = Article.find(params[:id])
end

詳細ページを開くリンクを作る

↓ これを参考にリンクを作る

「/articles/:id」の「:id」は、「article.id」を指定する

<%= link_to article_path(id: article.id) do %>

<% end %>

ただ上記のように書く人は少なく、一般的には以下のように省略して書かれる

<%= link_to article_path(article) do %>

<% end %>

(id: article.id)でも(article)でも、同じ働きをする

#DAY10