RubyやRailsでGemの依存関係を調べる方法 | Xxxx is supported for Rails Y.Y on Ruby Z.Z and later

当サイトでは一部リンクに広告が含まれています
アイキャッチ

Ruby on Rails でポートフォリオを作っていると、便利な Gem を使いたくなりますよね。

そして Gemfile に追加して bundle install した後、以下のようなエラーが出たことはありませんか?

Ransack is supported for Rails 7.0, 6.1 on Ruby 2.7 and later.

これは、以下のような意味を持ちます。

  • Ransack は Rails 7.0 と 6.1 でサポートされている
  • Ruby 2.7 以降で動作する

逆にいうと、Rails 6.0 以下では動作せず、Ruby 2.7 未満でも動作しないということです。

しかし、実際に導入しようとしてからエラーに遭遇するよりは、事前に確認しておいた方が良いですよね。

そこで今回は、使おうとしている Gem がどのバージョンの Rails と Ruby で動作するのかを確認する方法を紹介します。

目次

RubyGems にアクセスする

まずは、RubyGems のサイトにアクセスします。

あわせて読みたい

RubyGems とは、誰かが作った Gem を公開するためのサイトです。

みなさんが使おうとしている Gem も、ここに登録されているはずです。

RubyGems で使おうとしている Gem を検索する

RubyGems にアクセスしたら、検索ボックスに使おうとしている Gem の名前を入力します。

例えば今回は Ransack という Gem を使おうとしているので、検索ボックスに ransack と入力します。

大抵、検索結果の一番上に使おうとしている Gem が表示されると思いますのでクリックします。

すると、その Gem の詳細ページに移動します。

対応している Ruby のバージョンを確認する

詳細ページに移動したら、画面右側に必要なRUBYのバージョン: という項目があるので、そこに対応している Ruby のバージョンが記載されています。

例えば今回は、以下のように記載されていました。

>= 2.7

これは、Ruby 2.7 以上であれば動作するということです。

逆にいうと、例えば Ruby 2.6 以下では動作しないということです。

対応している Rails のバージョンを確認する

ポートフォリオを作ろうとしている場合、Rails のバージョンも気になると思います。

対応している Rails のバージョンは、RUNTIME依存関係 という項目に記載されています。

ここで注意点があります。

上記の依存関係を見てみると、Rails とは書かれていないですよね。
その理由を説明します。

Rails はそれ自体が Gem なのですが、Rails には複数の Gem が含まれています。
例えば、以下のような Gem が含まれています。

  • activerecord
  • activesupport
  • activejob
  • actioncable
  • actionmailbox
  • actionmailer

このように、Rails には active または action という名前の Gem が含まれています。
それとの依存関係によって使える Rails のバージョンが決まるのです。

そのため、active または action から始まる名前の Gem のバージョンを確認することで、使える Rails のバージョンを確認することができます。

上記の例でいうと、activerecordactivesupport が含まれているので、Rails 6.1.5 以上であれば動作するということです。

まとめ

今回は、使おうとしている Gem がどのバージョンの Rails と Ruby で動作するのかを確認する方法を紹介しました。

Gem を使おうとしてからエラーに遭遇するよりは、事前に確認しておいた方が良いですよね。

そのため、以下の手順でチェックしましょう!

  1. RubyGems にアクセスする
  2. RubyGems で使おうとしている Gem を検索する
  3. 対応している Ruby のバージョンを確認する
  4. 対応している Rails のバージョンを確認する
目次