Techioz Blog

Rails 6.1 — add 、 gem バンドルはありますが、メソッドは利用できません

概要

Ruby: 3.1.2、Rails 6.1

gem importmap-rails を既存の Rails 6.1 アプリに追加しようとしています。

gem バンドルはありますが、rake importmap:install タスクも gem ヘルパー メソッド <%= javascript_import_tags %> も使用できません。

Rails コンソールでは、Importmap クラスは未定義です。

gem が適切または完全にインストールされていないようです。有用なエラー メッセージは表示されません。

バンドルされているが利用できない gem をデバッグするにはどうすればよいですか?この状況は私には理解できません。

(以前の試みからの関連質問)

解決策

問題は、importmap-rails gem が Gemfile のグループ :rails 内にあるため、クラスが必須にならないことでした。

これは機能しません(上記のリンクされた質問に説明があります):

# gem("rails", "~> 7.0")

group :rails do
  gem("actioncable")
  # gem("actionmailbox")
  gem("actionmailer")
  gem("actionpack")
  # gem("actiontext")
  gem("actionview")
  gem("activejob")
  gem("activemodel")
  gem("activerecord")
  # gem("activestorage")
  gem("activesupport")
  gem("bundler")
  gem("importmap-rails")
  gem("railties")
  gem("sprockets-rails")
  gem("turbo-rails")
end

次のようにする必要があります:

group :rails do
  ...
  gem("bundler")
  gem("railties")
end

gem("importmap-rails")
gem("sprockets-rails")
gem("turbo-rails")