通过使用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日,它似乎仍然未修复并已关闭。
尽管如此,很多人都在受到这种行为的困扰,我也想找机会提交一份修复请求,呵呵。