PF作るに当たって覚えたことの整理
2020.2.3
- PF作るに当たって覚えたことの整理
画像自体をリンクにする
link_to 画像の名前, 遷移させたいページの場所
例)
<%= link_to image_tag("img_logo.png"), show_path%>
テーブルから条件をつけてデータを取り出す
絞り込んで特定のカラムだけ取り出す pluck
テーブル名.where(カラム名: "条件").pluck(:取り出したいカラム)
例)
User.where(gender: "male").pluck(:name)
とするとuserテーブルの内の男性(male)だけの名前(name)が取得できる。
["太郎", "次郎"]
というように配列で受け取れる
複数のカラムを取得する際は
User.where(gender: "male").pluck(:id, :name)
とすると
[[1, "太郎"], [2, "次郎"]]
と取得できる
レコードの個数を指定する limit
テーブルからデータをとってくる際に、個数に制限をかけて取得したい場合
モデル名.limit(n)
で個数を制限できます。
例)
先頭から3つのレコードを取得
@discography = Discography.limit(3)
5つ目から3つのレコードを取得
@discography = Discography.limit(3).offset(4)
配列から順番に取り出していく方法 slice!
要素.slice!(引数)
で要素から指定した引数にあたる値を配列から取り出す。取り出された値を返してくれる。
a = ["a", "b", "c"]
a.slice!(1)
=>"b"
a
=>"a","c"
範囲指定
a = ["a", "b", "c"]
a.slice!(0, 1)
=>"a", "b"
a
=>"c"
railsでの複数checkboxの設置、値の取得の方法
オプションで{multiple: true}を設定
日付の関連の取得方法
今日の日付 Date.today
=>2021-02-03
日にちを整数で取得(1~31) mday
Date.today.mday
=>3
月を取得 month
Date.today.month
=>2
年を取得 year
Date.today.year
=>2021
1月1日からの通算日を取得(1~366) yday
Date.today.yday
=>34
暦週を取得 cweek
Date.today.cweek
=>6
曜日 wday
曜日を数値の0~6で返してくれる。(0=>日、1=>月、 2=>火・・)
例)
weekday = %w[日 月 火 水 木 金 土]
weelday[Date.today.wday]
=>水
hidden_fieldとhidden_field_tagの使い方
form_forやform_tagの中で使う場合は
f.hidden_field
単体で使う場合は
hidden_field_tag を使う
f.hidden_fieldの使い方
f.hidden_field :カラム名, :値
例)
<%= form_for @user do |f| %>
<%= f.text_field :name %>
<%= hidden_field_tag :user_id, current_user.id %>
<%= f.submit "送信" %>
<% end %>
コントローラ側で
name を取得する場合
params[:user][:name]
user_idを取得する場合
params[:user_id]
hidden_field_tagの使い方
hidden_field_tag :変数(第一引数), 渡したい値(第二引数)
例)
<%= hidden_field_tag :email, @user.email %>
コントローラ側でparams[:email]で値を取り出せる。
ちなみに、下記サイトでより細かく説明してあります。
form_forとform_tagでのparamsの違いなども説明してあり、非常に参考になりました。
【Rails】form_forの使い方をマスターしよう! | Pikawaka - ピカ1わかりやすいプログラミング用語サイト
form_with, form_forでのプルダウンの設置方法
f.select :保存先のカラム名, [["選択肢A", "実際に保存させる内容"], ...], include_blank: '選択してください'
例)
<%= form_with model: @food do |f| %>
<%= f.select :fruit, [["りんご", "りんご"], ["みかん"m "みかん"], [”ばなな”, "ばなな"]], include_blank: "選択してください" %>
<%= f.submit '送信' %>
<% end%>