環境
Ruby 2.5.0
Rails 5.2.0
業務的なコードを書いていると、どう工夫しても複雑なSQLに行き着く時はある。
そもそもunionを使うくらいならば
・orで代替できないか
・分割でSQLを発行した方が可読性やパフォーマンスが上がらないか
等々を検討すべきだが、そうはいってもunionを使う場面というのはあると思う。
ということでunionの実装だが、いざunionを実装しようと思ってもネット上ではarel_tableを使ったり複雑めな実装で可読性が低いものが多かった。
(arel_tableは可読性が著しく下がる場合が多いので個人的には使いたくない)
そこで紹介するのがactive_record_unionというgem。
使い方はいたってシンプル。
Gemfileにgemを追加して
例えば以下のコードを書けば
以下のSQLが発行される。
とても簡単に書けますね。