def show
@post = Post.find_by(id: params[:id])
end
これが意味不だったのがちょっとわかるようになったので記念に書く。
@post
@をつけとくとこの変数をHTML(erb)ファイル内で呼び出せる。
Post
モデル名。投稿のひな型を呼び出してる。
find_by
メソッド。データベースのレコード(横)から、指定したカラム名の要素を探し出す。
(id: 〇〇 )
カラム名の指定をしてる。idカラムから〇〇のデータ探してこいということ。
( params[ ])
paramsは変数で、[ ]内で指定したデータを拾ってくる。
(コメント欄で指摘いただきました)
[:id]
このとき指定してる[:id]はroutes.rbファイル内から探している。
get "posts/:id" => "posts#show"
クエリパラメータとして:id があるので、その値を受け取っている。
逆から読みといていくと、
まずURLの ":id" の値を取得して
↓
データベース内からidカラムが ":id" に一致するものを探して
↓
Postモデルにそれを放り込んで生成したものを
↓
@postに代入してHTML上で使えるように
という流れ。だと思う。間違ってないと思いたい。