Как использовать одно и то же имя класса для нескольких модулей? - PullRequest
0 голосов
/ 14 апреля 2019

Как использовать одно и то же имя класса для нескольких модулей?

У меня есть основной ApplicationService

# /app/services/application_service.rb

class ApplicationService; end
# /app/services/processing/queue/application_service.rb

module Processing
  module Queue
    class ApplicationService < ApplicationService; end
  end
end
# /app/services/processing/callback/application_service.rb

module Processing
  module Callback
    class ApplicationService < ApplicationService; end
  end
end

Как заставить рельсы не путаться и знать, как их использовать /app/services/application_service.rb

Все мои услуги в /app/services/processing/queue/ имеют /app/services/processing/queue/application_service.rb в качестве родительского класса.

1 Ответ

3 голосов
/ 14 апреля 2019

Используйте FQN (полное имя) ::ApplicationService для ссылки на класс высшего уровня.

module Processing
  module Callback
    class ApplicationService < ::ApplicationService; end
  end
end
...