ruby-on-rails - 在 Rails 的目录中组织 GraphQL 文件
问题描述
运行rails g graphql:install
时,会创建一组有用的基本类型文件,/app/graphql/types
供我们在定义自己的类型时进行扩展。运行任何生成器时,它也会在同一文件夹中创建这些文件。我开始创建子目录,以为我可以为这个巨大的包罗万象的目录添加一些意义,但无法正确加载内容。
由于每种类型( 、 等)都有一个基本文件,因此我为每种类型(、base_enum.rb
等base_object.rb
)的扩展创建了一个文件夹。但是这破坏了自动加载,我必须显式导入这些文件才能使用这些自定义类型。所以,在顶部,我添加了以下内容:enum_types
object_types
query_type.rb
mutation_type.rb
app/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 网站上自动加载的文章,但老实说,这让我有点过头了。尽管这让我相信我必须为我的文件夹找到正确的名称,或者为我的类型定义文件中定义的对象正确命名才能做到这一点。
有没有一种理智的方法可以将这些文件组织在不会破坏自动加载的子目录中?大多数项目是否只有这些文件的平面文件夹结构?
谢谢!
解决方案
推荐阅读
- c - 在 repl.it 上的 C 中的“迷宫”数组中开辟一条清晰的路径
- graph - 如何使用 Microsoft Graph API 访问组/团队邮箱
- visual-studio-code - 无法使用 MSVC 构建工具使用 Visual Studio Code 编译文件
- java - Eclipse 和 Struts 2 缺少“s:text”的结束标记
- linux - 为什么触摸 - 不返回任何错误但没有创建文件 - ?
- flutter - 使用 BottomNavigationBar 时如何通过屏幕导航缓存 FutureBuilder 异步结果?
- javascript - 强制用户仅使用地点自动完成结果
- r - 读取 csv 文件无法打开连接
- excel - 尽管操作成功,但对象需要错误
- javascript - 多 div 的动画 scrollTop 问题