Ruby 【Ruby】コンポジションと委譲の関係 コンポジションと委譲は、どちらも『あるオブジェクトが別のオブジェクトの機能を使う』という文脈で登場するため、混同しやすい概念です。しかし、この2つは同じ意味ではありません。本記事では、この両者の関係性について説明します。 コンポジション コ... 2025.08.23 Ruby
Ruby 【Ruby】移譲(Delegation)とは? はじめに あるオブジェクトが受け取ったメソッド呼び出しを、別のオブジェクトに丸投げする仕組みを移譲(Delegation)と呼びます。 移譲の基礎 UserクラスがProfileクラスを持ち、Profileのnameを取得するケースを考えま... 2025.08.11 Ruby
Ruby 【Ruby】ポリモーフィズムとは?〜継承とダックタイピング〜 はじめに この記事では、オブジェクト指向の基本である ポリモーフィズム(多態性) を継承とダックタイピングの方法で説明し、それぞれの考え方の違いにも触れていきます。 ポリモーフィズムとは? ポリモーフィズムとは、異なるクラスのオブジェクトが... 2025.07.21 Ruby
Ruby on Rails 【Rails】polymorphic(ポリモーフィック)って何?使い方は? Railsで開発していると、polymorphic(ポリモーフィック)関連という言葉を目にすることがあります。 ただ、実際に使ったことがなかったり、なんとなくで理解しているという方も多いのではないでしょうか? この記事では、そんな方向けに ... 2025.07.06 Ruby on Rails
Ruby on Rails 【Rails】joins・preload・eager_load・includesの違いと使い分け RailsのActiveRecordで関連データを扱いたいとき、joins や includes など、いろいろなメソッドがありますよね。 でも、どう使い分けたらいいのかよく分からない…と疑問に思う方も多いのではないでしょうか。 この記事で... 2025.06.15 Ruby on Rails
SQL 【SQL】INNER/LEFT/RIGHT/FULL/CROSS JOINの違いと具体例 はじめに SQLの INNER JOIN、LEFT JOIN、RIGHT JOIN……「何がどう違うの?」と聞かれるとちょっと不安。この記事では、自分の頭の中を整理するために、JOINの基本的な種類と違いを簡単な例と一緒にまとめてみました。... 2025.06.01 SQL
Git 【Git】git mv後に履歴が追えない原因と対策 はじめに ファイルのリネームや移動をするとき、みなさんは git mv コマンドを使っていますか? git mv old_file.rb new_file.rb git mv は、単にリネームや移動するだけでなく、その操作をGitの履歴とし... 2025.05.18 Git
MySQL EXPLAINで意図したインデックスが使われなかったときにRailsで USE INDEX を指定する方法 はじめに MySQLでクエリのパフォーマンスを調査する際にまず行うのが EXPLAIN による実行計画の確認です。しかし、インデックスを張っているにもかかわらず、意図したインデックスが使われていないというケースがあります。この記事では、そう... 2025.05.03 MySQL
Git 【Git】派生元ブランチを変更したいときの git rebase –onto Git を使っていると、ブランチを間違ったところから切ってしまうことがあります。 「本当は feature-A から feature-B を切るつもりだったのに、間違えて main から feature-B を切って作業してしまった…」 そ... 2025.04.19 Git
Ruby on Rails 【Rails】カラムのデフォルト値変更時にロールバックが失敗する原因と対策 Railsでは change_column_default を使うことで、カラムのデフォルト値を変更することができます。ただし、マイグレーションを記述する際に少し注意が必要な点があります。それはロールバック時の挙動です。 今回は、実際の書き... 2025.04.05 Ruby on Rails