首页 > 解决方案 > 在 Rails 的目录中组织 GraphQL 文件

问题描述

运行rails g graphql:install时,会创建一组有用的基本类型文件,/app/graphql/types供我们在定义自己的类型时进行扩展。运行任何生成器时,它也会在同一文件夹中创建这些文件。我开始创建子目录,以为我可以为这个巨大的包罗万象的目录添加一些意义,但无法正确加载内容。

由于每种类型( 、 等)都有一个基本文件,因此我为每种类型(、base_enum.rbbase_object.rb)的扩展创建了一个文件夹。但是这破坏了自动加载,我必须显式导入这些文件才能使用这些自定义类型。所以,在顶部,我添加了以下内容:enum_typesobject_typesquery_type.rbmutation_type.rbapp/graphql/mutations/base_mutation.rb

['enum_typs', 'input_object_types', 'interface_types', 'object_types', 'scalar_types', 'union_types'].each do |dir|
  Dir[File.dirname(__FILE__) + "/#{dir}/*.rb"].each {|file| require file }
end

这允许运行,但任何更改都会破坏自动加载,因此我必须在每次更改时重新启动服务器。我开始阅读这篇关于在 rails 网站上自动加载的文章,但老实说,这让我有点过头了。尽管这让我相信我必须为我的文件夹找到正确的名称,或者为我的类型定义文件中定义的对象正确命名才能做到这一点。

有没有一种理智的方法可以将这些文件组织在不会破坏自动加载的子目录中?大多数项目是否只有这些文件的平面文件夹结构?

谢谢!

标签: ruby-on-railsgraphql

解决方案


推荐阅读