こんにちは、hachi8833です。今回はRails 5を対象に、実はなくてもよいgemや使われなくなりつつあるgemをリストアップします。ネット上の情報が古いことに気づかずにこうしたgemを導入してしまうと後々変更が面倒になりますね。
本記事は今後も継続して更新いたします。
本記事と逆の、Rails 5向け厳選・定番gemリストについては以下をご覧ください。
【募集】不要なgem・使われなくなりつつあるgem情報
こうしたgemが他にもありましたら、記事末尾のフォームまたは@techrachoまでお知らせください。確認の後、本記事に追記いたします。
実は不要なgem
quiet_assets
- リポジトリ: evrone/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
- リポジトリ: mynyml/watchr
開発中のファイル更新監視&スクリプト起動用プログラムにはいろんなものがあります。watcherは後述のzeusの一部としても使われていましたが、更新されなくなって随分経ちます。
開発中にファイル更新を検出してRSpecやRubocopを自動実行したりブラウザプレビューを自動更新したりしたいのであれば、guard gemを使うか、RubyMineなどのIDEにある機能を使うのがよいでしょう。
- 参考: Guard alternatives — さまざまなファイルウォッチャーを紹介しています(Guard wiki)
zeus
- リポジトリ: burke/zeus
開発中にRailsを素早く起動するプリローダーとしてzeusがよく使われていましたが、Rails 5には公式には対応していません。
現在のRailsであればspring gemがデフォルトのプリローダーなので、zeus独自の機能がどうしても必要ということでもなければspringをそのまま使うのがよいでしょう。
使われなくなりつつあるgem
ZenTest
- リポジトリ: seattlerb/zentest
Rails2系〜3系初期までは主流だったテストGemですが、今はほぼRSpecとMiniTestに集約されて見かけなくなりました。
Paperclip
- リポジトリ: thoughtbot/paperclip
添付ファイルをActiveRecordで管理できる、シンプルな設計のgemです。以前は広く使われていましたが、最近はCarrierWaveの方が人気が高いようです。
Paperclipは今も更新が続いていますしGitHubの星の数でもCarrierWaveに勝っていますが、CarrierWaveの台頭でシェアが下がっている可能性がありますので、念のため確認しておくとよいでしょう。
debugger
- リポジトリ: cldwalker/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
- リポジトリ: CanCanCommunity/cancancan
アカウントに応じてリソースアクセスを制限する、いわゆるauthorization用のgemです。
cancancanは、簡単なauthorizationには便利ですが、大規模なリソースアクセス管理になると辛くなってくる傾向があるようです。
大規模な用途では、よりオブジェクト指向が強く、純粋なRubyクラスで実装されているPundit gemがよく利用されています。
番外: 実は不要とも言い切れないgem
turbolinks
- リポジトリ: turbolinks/turbolinks
turbolinksはページのナビゲーションを高速化するRails標準gemのひとつですが、Rails 4の頃はページの挙動がわかりにくくなるためか目の敵にされることが多く、「速攻で外した」と記載している記事をよく見かけます。
好みもあるので一概には言えませんが、Turbolinksも多くの修正や改良を重ね、特にRails 5以降では以前に比べてかなり素直な挙動になっているようです。
Rails 5でrails new
するのであれば、急いで外さずにしばらく様子を見てからでよいかもしれません。案外そのまま使い続けるかもしれませんよ。
関連記事
- [Rails 5] rails newで使いたい厳選・定番gemリスト(2017年版)
- [Rails 5] rbenvでRubyをインストールして新規Rails開発環境を準備する
- ruby-install: 任意のバージョンのRubyをスマートにビルド・インストールするツール
- Railsのbundle install –deploymentとは何なのか