0
0

RailsでURLからidを取得する方法

Posted at

はじめに

RailsのCRUDを学習し直すために、簡易的な勤怠管理アプリを作成したため、自分用の備忘録としてまとめてみました。基本的なものだけを紹介しているので、より詳しく知りたいものについては適宜ご自身で調べながら読み進めて頂けると幸いです。

また、こちらはプログラミング初学者がまとめた記事となりますので間違っていることがあるかもしれません。その際はご指摘等頂けると幸いです。宜しくお願いします。

本記事の内容

Railsでよく使われる文法の解説。

対象者

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_byparams
の合わせ技で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 %>
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0