9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

xray-railsはRails6だと動かないという話

Posted at

TL;DR

xray-railsgemを使っている方がRails6にアップグレードするときは要注意。

事の流れ

発端

プロジェクトをRails6に上げたところ、なぜかimage_tagが動作しなくなりました。具体的には、app/assets/images/exist.svgみたいなファイルがあるのに、image_tag 'exist.svg'がエラーを吐くようになりました。

調査

試しに新規にRails6アプリケーションを作成し、同じファイルをコピーしてimage_tagを使用したところ問題なく動作しました。この時点で該当アプリケーションと新規アプリケーションの差分が原因(ファイルや記法の問題ではない)ということはわかったものの、設定が問題だと思いこんでいたためどこが真の原因かを突き止めることができませんでした。

ruby-jp

自力での調査を続けてもよかったのですが、正直疲れていた私はオンラインで質問することにしました。
幸い、ruby-jpというSlackコミュニティがあり、そこにはrailsチャンネルがあるので私はそちらに質問を投下しました。

undefined method 'pathname' for #<#:0x00007f84088a6018>というエラーが出て困っています。
既存のRails 5.2のアプリをRails 6に上げたら出るようになりました。
image_tagの箇所で出ており、 app/assets/images/hoge.svgが存在するときに image_tag 'hoge.svgを呼ぶと上記エラーとなります。
アセットパイプラインがおかしいとは思うのですが、正常動作しているRails 6のアプリと比べても違いがわからずに困っています。
同じような経験のある方はいらっしゃいますでしょうか…

するとなんと8分後に回答が!

xray-rails入ってます?

はっとなりました。Gemfilexray-railsのエントリがあることは知っていたため「あります」と回答するとURLが。

なるほど…

解決

xray-railsGemfileから除外するとエラーは出なくなりました、めでたしめでたし。
masterブランチを使うという手もありましたが、もう使っていないということだったので除外する方法を採りました)

まとめ

というわけで、xray-railsが原因であることがruby-jpのおかげでわかりました、という話でした。回答してくださったbluerabbitさんをはじめとした方々、ありがとうございました!

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?