Railsのparamsについての基礎が抜けていたので備忘録としてメモです💦
もしかしたら間違っているところもあるかもしれないので、その際は優しく指摘頂けると幸いです🙇🏼♂️
find_by
メソッドの使い方
特定のidの投稿を取得するためにfind_by
を使う
post = Post.find_by(id:3)
のような感じ
こうすることによってデータベースから特定のidを持った値を取得できる
URLにidを含める 方法
ルーティングをいじっていく
get "posts/:id" => "post#show"
こうすることで特定のidを持った投稿の詳細ページに飛べる
params
の使い方
viewファイルのアクション内で@id
のような形でインスタンス変数を作ってあげる
そこにparams[:id]
を代入する
@id = params[:id]
のような感じ
viewファイルに<%= @id %>
とすれば、idを表示できる
この考え方を応用して、
@post = Post.find_by(id: params[:id])
のようにfind_by
とparams
の合わせ技でURLに含まれるidを持った値を取得できる
例えば@post
を用いて<%= @post.content %>
とすれば指定したidの内容を表示できる(contentカラムが存在する場合)
link_to
について
link_to(リンクテキスト, リンク先URL)
フォームの入力内容を受け取る方法
フォームから入力内容を受け取る際もparams
を用いて、
@post = Post.new(content:params[:content])
と取得できる
paramsの後に指定する名前は<textarea>
などのフォームについているname=" "
と紐づく
form_tag
Railsで投稿フォームを作成する場合にform_tag
を用いると楽ができる
全体をform_tag
で囲み、その中に投稿用のHTMLを書く
<%= form_tag('/posts/create') do %>
(中身)
<textarea></textarea>
<input type="submit" value="投稿する">
<% end %>