После запуска 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 , но, честно говоря, это было немного над моей головой.Хотя это заставило меня поверить, что я должен был либо найти правильные имена для своих папок, либо пространство имен для объектов, определенных в моих файлах определений типов, чтобы быть в состоянии сделать это.
Есть ли разумный способ организовать эти файлыв подкаталогах, которые не нарушают автоматическую загрузку?У большинства проектов просто есть плоская структура папок для этих файлов?
Спасибо!