[Rails 5]実は不要なgem・使われなくなりつつあるgem(2017年版)

こんにちは、hachi8833です。今回はRails 5を対象に、実はなくてもよいgemや使われなくなりつつあるgemをリストアップします。ネット上の情報が古いことに気づかずにこうしたgemを導入してしまうと後々変更が面倒になりますね。

本記事は今後も継続して更新いたします。

本記事と逆の、Rails 5向け厳選・定番gemリストについては以下をご覧ください。

【募集】不要なgem・使われなくなりつつあるgem情報

こうしたgemが他にもありましたら、記事末尾のフォームまたは@techrachoまでお知らせください。確認の後、本記事に追記いたします。

実は不要なgem

quiet_assets

ログチェック時に邪魔になりがちなアセット(静的ファイル)へのアクセスログを抑制します。

以前のRailsでは広く使われていましたが、sprockets-rails 3.1.0(#310)でアセットログ出力を設定できるようになってから、このgem自身のREADMEで非推奨と記載されています。

さらに、Rails 5とRails 4.2.7以降ではdevelopmentモードでのアセットログが標準でオフ(config.assets.quiet = true)になっています。

developmentモードでアセットログを出力したい場合は、config/environments/development.rbでconfig.assets.quiet = falseと設定します。

watchrなどのファイル更新監視gem

開発中のファイル更新監視&スクリプト起動用プログラムにはいろんなものがあります。watcherは後述のzeusの一部としても使われていましたが、更新されなくなって随分経ちます。

開発中にファイル更新を検出してRSpecやRubocopを自動実行したりブラウザプレビューを自動更新したりしたいのであれば、guard gemを使うか、RubyMineなどのIDEにある機能を使うのがよいでしょう。

  • 参考: Guard alternatives — さまざまなファイルウォッチャーを紹介しています(Guard wiki)

zeus

開発中にRailsを素早く起動するプリローダーとしてzeusがよく使われていましたが、Rails 5には公式には対応していません。

現在のRailsであればspring gemがデフォルトのプリローダーなので、zeus独自の機能がどうしても必要ということでもなければspringをそのまま使うのがよいでしょう。

migration_comments

Railsマイグレーションファイルに書いたコメントをスキーマとデータベースに自動反映するgemですが、Rails 5ではこの機能が標準装備されています。

参考: [Rails 5] マイグレーション時にデータベースのカラムにコメントを追加する

hirb-unicode、awesome_print

現在のRailsにはカラーのpretty print機能が標準装備されています。hirb-unicodeはインストールするとむしろモノクロになってしまいます。

使われなくなりつつあるgem

ZenTest

Rails2系〜3系初期までは主流だったテストGemですが、今はほぼRSpecとMiniTestに集約されて見かけなくなりました。

Paperclip

添付ファイルをActiveRecordで管理できる、シンプルな設計のgemです。以前は広く使われていましたが、最近はCarrierWaveの方が人気が高いようです。

Paperclipは今も更新が続いていますしGitHubの星の数でもCarrierWaveに勝っていますが、CarrierWaveの台頭でシェアが下がっている可能性がありますので、念のため確認しておくとよいでしょう。

debugger

Railsでかつて多用されたデバッガですが、Ruby 1.9以下でしか動作せず、更新もほぼありません。

Railsのデバッガであればbetter_errorsがおすすめです。

twitter-bootstrap-rails

Bootstrap系のgemとしてかつて多用されていましたが、現在であればTwitter公式のtwbs/bootstrap-sass gemが確実です。

paranoid系gem(rails3_acts_as_paranoidやacts_as_paranoidなど)

データベースの論理削除系gemにはparanoidやparanoiaといった名前が付いたものが他にもいろいろあり、なかなか紛らわしくなっています。
現在はrubysherpas/paranoia gemが使われることが多いようです。Rails 3/4/5に対応しているとのことです。

ただし論理削除はバッドプラクティスに陥りやすいので、導入は慎重に。

jQueryやJavaScriptライブラリ導入用gem

Rails 5.1に向けてyarnやWebPackの導入が進んでいることもあり、今後はjquery-railsなどのjQuery/JavaScriptライブラリ導入用のgemはだんだん使われなくなっていくことが予想されます。

今後rails newするときはこれらのgemの導入は控えめにし、今のうちになるべくyarnでJavaScriptライブラリを管理するのがよいでしょう。

用途によって使い分けたいgem

cancancan

アカウントに応じてリソースアクセスを制限する、いわゆるauthorization用のgemです。
cancancanは、簡単なauthorizationには便利ですが、大規模なリソースアクセス管理になると辛くなってくる傾向があるようです。

大規模な用途では、よりオブジェクト指向が強く、純粋なRubyクラスで実装されているPundit gemがよく利用されています。

番外: 実は割りといいgem

turbolinks

turbolinksはページのナビゲーションを高速化するRails標準gemのひとつですが、Rails 4の頃はページの挙動がわかりにくくなるためか目の敵にされることが多く、「速攻で外した」と記載している記事をよく見かけます。

好みもあるので一概には言えませんが、Turbolinksも多くの修正や改良を重ね、特にRails 5以降では以前に比べてかなり素直な挙動になっているようです。
Rails 5でrails newするのであれば、急いで外さずにしばらく様子を見てからでよいかもしれません。案外そのまま使い続けるかもしれませんよ。

関連記事

ご意見・ご感想はこちらでどうぞ

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ