Ruby on Rails

【Rails】polymorphic(ポリモーフィック)って何?使い方は?

Railsで開発していると、polymorphic(ポリモーフィック)関連という言葉を目にすることがあります。 ただ、実際に使ったことがなかったり、なんとなくで理解しているという方も多いのではないでしょうか? この記事では、そんな方向けに ...
Ruby on Rails

【Rails】joins・preload・eager_load・includesの違いと使い分け

RailsのActiveRecordで関連データを扱いたいとき、joins や includes など、いろいろなメソッドがありますよね。 でも、どう使い分けたらいいのかよく分からない…と疑問に思う方も多いのではないでしょうか。 この記事で...
SQL

【SQL】INNER/LEFT/RIGHT/FULL/CROSS JOINの違いと具体例

はじめに SQLの INNER JOIN、LEFT JOIN、RIGHT JOIN……「何がどう違うの?」と聞かれるとちょっと不安。この記事では、自分の頭の中を整理するために、JOINの基本的な種類と違いを簡単な例と一緒にまとめてみました。...
Git

【Git】git mv後に履歴が追えない原因と対策

はじめに ファイルのリネームや移動をするとき、みなさんは git mv コマンドを使っていますか? git mv old_file.rb new_file.rb git mv は、単にリネームや移動するだけでなく、その操作をGitの履歴とし...
MySQL

EXPLAINで意図したインデックスが使われなかったときにRailsで USE INDEX を指定する方法

はじめに MySQLでクエリのパフォーマンスを調査する際にまず行うのが EXPLAIN による実行計画の確認です。しかし、インデックスを張っているにもかかわらず、意図したインデックスが使われていないというケースがあります。この記事では、そう...
Git

【Git】派生元ブランチを変更したいときの git rebase –onto

Git を使っていると、ブランチを間違ったところから切ってしまうことがあります。 「本当は feature-A から feature-B を切るつもりだったのに、間違えて main から feature-B を切って作業してしまった…」 そ...
Ruby on Rails

【Rails】カラムのデフォルト値変更時にロールバックが失敗する原因と対策

Railsでは change_column_default を使うことで、カラムのデフォルト値を変更することができます。ただし、マイグレーションを記述する際に少し注意が必要な点があります。それはロールバック時の挙動です。 今回は、実際の書き...
Git

【Git】間違って git rebase -i したのを元に戻す方法

はじめに git rebase -i は、複数のコミットをまとめたり、削除したりできる便利なコマンドですが、操作を間違えて意図しない変更をしてしまうこともあります。そんなときでも git reflog を使えば、元の状態に戻すことが可能です...
Ruby

Rubyのコードで考えるSOLID原則

はじめに オブジェクト指向設計の基本原則であるSOLID原則を、Rubyのコード例を交えつつ、違反例と解決策を示しながらまとめました。 SOLID原則とは SOLID原則は、「変更に強い」・「理解しやすい」・「再利用しやすい」といった性質を...
Git

【Git】変更を一時退避する便利技 git stash の基本コマンド

はじめに 開発中に「今の変更を一時的に保存して、後で戻したい…」と思うことはありませんか?そんなときに便利なのが git stash です!git stash を使えば、コミットせずに作業途中の変更を退避し、好きなタイミングで元に戻せます。...