Techioz Blog

Mysql2::Error: テーブル名が正しくありません ’ - AppMap Gem を使用する場合

概要

最近 AppMap ユーティリティについて知り、IntelliJ 経由で Rails アプリにそれを組み込もうとしています。ただし、gem をインストールして構成した後、リクエストを行うと次の例外がスローされます。

ActiveRecord::StatementInvalid in UsersController#index

Mysql2::Error: Incorrect table name '' 

ブラウザを使用する場合、すべてのページ、モデル、リクエストなどに対してこれが行われます。スタック トレースから、Ability.rb ファイルでロールをチェックしているときに問題が発生しているようです (認証に Devise、CanCanCan、Rolify を使用しています)。

Rails コンソールで user.roles を実行しようとすると、次のようになります。

irb(main):007:0> u.roles
  Role Load (0.5ms)  SELECT `roles`.* FROM `roles` INNER JOIN `` ON `roles`.`id` = ``.`role_id` WHERE ``.`user_id` = 1
(Object doesn't support #inspect)

AppMap gem を削除すると、アプリケーション内のすべてが以前と同様に意図したとおりに動作します。

ここからどこに行けばよいのかよくわからないので、ご意見をいただければ幸いです。

バージョン:

解決策

AppMap github の問題ページでこの問題を報告していただきありがとうございます。この問題は、appmap-ruby gem の v0.95.0 で解決されています。他にサポートが必要な場合は、別の問題を開くか、コミュニティ スラックに参加してください。