Организация файлов GraphQL в каталогах в Rails - PullRequest
0 голосов
/ 23 июня 2019

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

Есть ли разумный способ организовать эти файлыв подкаталогах, которые не нарушают автоматическую загрузку?У большинства проектов просто есть плоская структура папок для этих файлов?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...