【发布时间】:2014-08-15 01:33:43
【问题描述】:
从事初始 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 类作为嵌套类添加到其中。这是否意味着我的租户类将始终包含该嵌套类?我是否需要以不同的方式命名我的模型和控制器路由?这完全没问题,没有什么可担心的吗?不完全确定这意味着什么。
【问题讨论】:
标签: ruby-on-rails ruby rubocop