从事最初的 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 类作为嵌套类添加到其中。这是否意味着我的租户类将始终包含该嵌套类?我是否需要以不同的方式命名我的模型和控制器路由?这完全没问题,没有什么可担心的吗?不完全确定这意味着什么。