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