はじめに
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