0
1

More than 3 years have passed since last update.

Railsでよく使うRubyのメソッド

Last updated at Posted at 2020-05-24

はじめに

Ruby on Railsをメインに扱うWeb受託開発企業に転職し、約4ヶ月が経過しました。
初心者ながらにプロジェクトにアサインして頂き苦し楽しい毎日を過ごしております。
開発していく中でよく使うなーと思うRubyのメソッドをまとめていきます!

修正

  • 20200531 コメント頂いた内容を基に修正しました。

メソッド一覧

if

説明不要の条件分岐を実現する制御構造。
true,falseで評価し、実行する処理を分岐させる。

if 条件式
  ifに対するtrue処理
elsif 条件式
  elsifに対するtrue処理
else
  falseの処理
end

each

配列の要素を繰り返しの形で取得するメソッド。
RailsではDBのレコードを順に取得する際に利用しています。

[1, 2, 3].each do |i|
  p i
end
出力
1
2
3

map

こちらもeachメソッドと似ていますが、
DBのレコードを取得する際にカラム指定する際に利用しています。

例えば以下のテーブルがあった場合

Usersテーブル
id |name        | age  | sex  | 
1  | テスト 一郎 | 20  |    |
2  | テスト 花子 | 18  |    |
3  | テスト 二郎 | 15  |    |

このようにカラムを指定して取り出せます。

Users.all.map(&:age)

出力
[20, 18, 15]

カラム指定でテーブルのid等を取得して、
関連付けされたテーブルを参照したりするのに便利です。
また、Whereメソッドと組み合わせ使用したりもよくします。

where

DBからレコードを取り出す際にカラムとデータを指定して検索する際に使用します。
mapと同様のテーブルが存在した場合、以下の通りに取得できます。

Users.where(age: 15)

出力
id |name        | age  | sex  |
3  | テスト 二郎 | 15  |    |

first

複数レコードが存在するDBの最初のレコードを取得します。
mapと同様のテーブルが存在した場合、以下の通りに取得できます。

Users.first

出力
id |name        | age  | sex  | 
1  | テスト 一郎 | 20  |    |

present?,blank?,nil?

present?:値が存在すればtrue,存在しなければfalse。配列を評価する際に[]の場合nilとなりfalseとなる。
blank?:値といえるものがない場合、真となる。
nil?:変数の値がnilまたは、値なしの場合、真となります。

三項演算子

ifによる条件分岐が1度しかない場合によく利用します。
1行で条件分岐することができ、個人的にはスマートだと思います。

条件式? trueの処理 : falseの処理

count

DBのレコードをカウントしたり、ページネーションに利用したりします。
mapと同様のテーブルが存在した場合、以下の通りに取得できます。

Users.count

出力
3

参考文献

Ruby 2.7.0 リファレンスマニュアル
【Ruby入門】真偽判定present?の使い方をわかりやすく解説

0
1
3

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
1