Railsの学習で役立つ!よく使うメソッドまとめ20選

未分類

Railsを学習する際に、よく使われるメソッドを知っておくと開発がスムーズに進みます。今回はRails初心者の方向けに、現場でよく利用されるメソッドをサンプルコードとともにまとめました。

1. find と find_by

ActiveRecordを使用して、DBからデータを取得する際によく使います。

  • find: 主キーを利用して1件のデータを取得します。
  • user = User.find(1)
  • find_by: カラム名を指定して1件のデータを取得します。
  • user = User.find_by(email: 'example@example.com')

現場でのシーン: 特定のユーザーや商品情報を取得する際に利用します。

2. where

複数のレコードを条件付きで取得したい場合に使用します。

users = User.where(active: true)

現場でのシーン: 特定の条件に合致するレコードを一括で取得する際に利用します。例: 未読メッセージを全て取得、在庫がある商品をリストアップなど。

3. pluck

指定したカラムの値だけを配列で取得します。

names = User.pluck(:name)

現場でのシーン: 特定のカラムの情報だけが必要な際に利用します。例: ユーザーの名前リストを作成する時など。

4. exists?

指定した条件のレコードが存在するかどうかを確認します。

is_exist = User.exists?(email: 'example@example.com')

現場でのシーン: 既に同じメールアドレスのユーザーが存在するか確認する際などに利用します。

5. update

データを更新します。

user = User.find(1)
user.update(name: '新しい名前')

現場でのシーン: ユーザー情報の変更、商品情報の更新など、データを修正する際に利用します。

6. destroy と destroy_all

データを削除します。

  • destroy: 1件のデータを削除します。
  • user = User.find(1)
    user.destroy
  • destroy_all: 複数のデータを条件付きで削除します。
  • User.where(active: false).destroy_all

現場でのシーン: 不要なデータを削除する際、特にテストデータのクリアなどに利用します。

7. all

全てのレコードを取得します。

users = User.all

現場でのシーン: 全データの一覧が必要な際、例えば管理画面で全ユーザーを表示する場面など。

8. first と last

  • first: 最初のレコードを取得します。
  • user = User.first
  • last: 最後のレコードを取得します。
  • user = User.last

現場でのシーン: データが正しく保存されているかの確認、最新の投稿を取得する場面など。

9. create

新しいレコードを作成して保存します。

user = User.create(name: 'Taro', email: 'taro@example.com')

現場でのシーン: 新しいデータの登録。

10. new と save

新しいレコードをインスタンスとして作成し、それを保存します。

user = User.new(name: 'Jiro')
user.save

現場でのシーン: データのバリデーションを確認した後に保存する場合など。

11. count

レコードの数をカウントします。

total_users = User.count

現場でのシーン: データの総数を確認する場面。

12. select

指定したカラムのデータだけを取得します。

users = User.select(:name, :email)

現場でのシーン: 特定の情報だけが必要な場面。

13. order

指定したカラムでソートして取得します。

users = User.order(:created_at)

現場でのシーン: 新着順、古い順など、データを特定の順番で取得する場面。

14. limit と offset

指定した数だけレコードを取得したり、指定した数だけスキップしてからレコードを取得します。

users = User.limit(5).offset(10)

現場でのシーン: ページネーションの実装など、一部のデータのみを取得する場面。

15. joins

関連付けられたテーブルとの結合を行います。

posts = Post.joins(:user).where(users: { active: true })

現場でのシーン: 2つ以上のテーブル間でデータを関連付けて取得する場面。

16. group と having

指定したカラムでグループ化し、指定した条件で絞り込みます。

User.group(:account_type).having("count(id) > ?", 5)

現場でのシーン: 特定の条件に合致するグループのデータを取得する場面。

17. includes

N+1問題を防ぐために、関連テーブルのデータもあらかじめ取得します。

posts = Post.includes(:comments)

現場でのシーン: パフォーマンス向上のために、関連データも一緒に取得する場面。

18. validates

モデルにバリデーションを追加します。

class User < ApplicationRecord
  validates :name, presence: true, length: { maximum: 50 }
end

現場でのシーン: データの整合性を保つため、特定の条件下でのみデータを保存する場面。

19. has_many と belongs_to

モデル間の関連付けを行います。

class User < ApplicationRecord
  has_many :posts
end

class Post < ApplicationRecord
  belongs_to :user
end

現場でのシーン: モデル間でのデータの関連付けを必要とする場面。

これらのメソッドは日常的なRailsの開発で頻繁に使われるものばかりですので、ぜひ実際に手を動かして慣れていきましょう!

コメント

タイトルとURLをコピーしました