通过使用gaphql-ruby应对不友好的错误消息

铁轨(5.2.2.1)
图灵学问(1.9.3)

看到不熟悉的错误信息

在使用rmosolgo/graphql-ruby时,偶尔会遇到以下类似的错误信息。


LoadError - Unable to autoload constant Types::MutationType, expected .../app/graphql/types/mutation_type.rb to define it:

即使在没有使用Mutation的项目中,这种错误有时也会发生,并且从内容和追踪中很难找出原因。为什么会被责骂呢?

处理

为了真正弄清楚原因,我们暂时进行以下更改。

# config/application.rb
config.paths.add 'app/graphql/types', eager_load: true`

虽然这不是一个很巧妙的方法,但由于”Types::MutationType”不存在而导致出现错误信息,所以尝试显式进行自动加载。通过这样做,刚才奇怪的消息就消失了,取而代之的是更接近真正错误的详细追踪信息。

/myapp/app/graphql/queries/select_query.rb:26: syntax error, unexpected ':', expecting '}' result: row, ^ 

就像您所看到的那样,這次問題的原因是一個很簡單的Ruby語法錯誤,但一開始的錯誤訊息根本無法被追踪,這讓我陷入了困境。

本家问题的情况

尝试使用一个联合体时出现 “无法自动加载常量Types::MutationType” 的错误 #1245。

尽管我们在我们公司也有类似的问题,但截至2019年3月28日,它似乎仍然未修复并已关闭。
尽管如此,很多人都在受到这种行为的困扰,我也想找机会提交一份修复请求,呵呵。

广告
将在 10 秒后关闭
bannerAds