Неправильно использовать константу верхнего уровня - PullRequest
0 голосов
/ 20 июня 2019

Весь код прекрасно работает во всех средах, кроме тестового режима.В тестовом режиме каким-то образом класс является подклассом класса TopLevel вместо класса модуля.

# app/controllers/base_controller.rb
class BaseController < ApplicationController
end

# app/controllers/api/base_controller.rb
module API
  class BaseController < BaseController
  end
end

# app/controllers/api/v2/base_controller.rb
# style 1
# this style cause problem when run rspec, API::V2::BaseController now
# subclass from BaseController, which should be API::BaseController
module API
  module V2
    class BaseController < BaseController
    end
  end
end

# style 2
# this style make subclass from correct class, but kinda ugly in code.
module API
  module V2
    class BaseController < API::BaseController
    end
  end
end

решение 1: Следуйте стилю № 2, но мне это не нравится и я ищудля лучшего способа.

решение 2 не используйте BaseController в TopLevel, вместо этого переименуйте его в другие, например OtherBaseController, чтобы я мог кодировать стиль 1. Поскольку rails не найдет BaseController в TopLevel.

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