Работа над первоначальным проектом Rails и использование Rubocop для анализа стиля кода. Это привело меня к вопросу о том, как именно вложенные классы Ruby работают в контексте Rails. Например, в моем движке у меня есть модель:
# app/models/app_core/tenant.rb
module AppCore
class Tenant < ActiveRecord::Base
end
end
и контроллер:
# app/controllers/app_core/tenant/members_controller.rb
module AppCore
class Tenant::MembersController < ApplicationController
end
end
В случае с моделью модуль совпадает с путем, а имя класса совпадает с именем файла. В случае с контроллерами вторая часть пути, «арендатор», является частью имени класса.
Rubocop говорит мне, что я должен "использовать определения вложенных классов вместо компактного стиля" в строке Tenant::MembersController
, поэтому, если я правильно понимаю...
module AppCore
class Tenant
class MembersController < ApplicationController
end
end
end
... это не должно иметь значения.
Теперь мой вопрос: у меня есть AppCore::Tenant в качестве модели, но затем AppCore::Tenant выглядит повторно открытым, и к нему добавляется класс MembersController как вложенный класс. Означает ли это, что в моем классе Tenant всегда будет этот вложенный класс? Нужно ли называть мои модели и маршруты контроллеров как-то по-другому? Это нормально и не о чем беспокоиться? Не совсем уверен, что это значит.