在我目前正在开发的Rails应用程序中,我有很多"请求"模型。我们正在使用很多 Web 服务,我们对这些服务有很多不同的请求,每个服务都有自己的逻辑(主要是验证)。因此,它们都作为命名空间分组在一个模块中:
module Request
end
所以现在每个请求都是这样的:
class Request::SendSomeData
end
目前为止,一切都好。。。问题是,我们将有很多这样的请求,这些请求将共享一些共同的逻辑。很容易包含模块
class Request::SendSomeData
include Request
end
。(所以它将同时充当命名空间和 mixin),但我想知道是否有办法在没有包含的情况下制作它(因为它将是某种代码重复)。
Ruby 有没有办法将一些实例方法放入模块命名空间中的所有类,而无需显式包含模块?
换句话说,我可以有这样的东西吗:
module Request
def someMethod
end
end
和
class Request::SendSomeData
end
并能够使用
Request::SendSomeData.new.someMethod
同时?
如果没有一些邪恶的黑客,你所要求的就无法完成。
你要么有太多的类,要么专注于一个太不重要的问题。 每个类只有一行代码。
另一种方法是创建一个基模型类,正如我之前在另一个问题中所描述的那样,但这需要派生类来调用set_table_name
,因此它不会为您节省任何类型。