0

在我目前正在开发的 Rails 应用程序中,我有许多“请求”模型。我们正在使用很多 Web 服务,并且我们对这些服务有很多不同的请求,每个请求都有自己的逻辑(主要是验证)。所以它们都被分组在一个模块中作为命名空间:

module Request
end

所以现在每个请求都是这样的:

class Request::SendSomeData
end

到目前为止,一切都很好......问题是我们将有很多这样的请求,它们将共享一些共同的逻辑。包含模块很容易

class Request::SendSomeData
  include Request
end

......(所以它既可以作为命名空间又可以作为混合),但我想知道是否有一种方法可以在没有包含的情况下实现它(因为它将是某种代码重复)。

Ruby 有没有办法在不显式包含模块的情况下将一些实例方法放在模块命名空间中的所有类中?

换句话说,我可以有类似的东西:

module Request
  def someMethod
  end
end

class Request::SendSomeData
end

并且能够使用

Request::SendSomeData.new.someMethod

同时?

4

1 回答 1

0

如果没有一些邪恶的黑客,你所要求的就无法完成。

你要么有太多的课程,要么专注于一个太不重要的问题。每个类只有一行代码。

另一种方法是创建一个基本模型类,正如我之前在另一个问题中描述的那样,但这需要对每个调用派生类set_table_name,因此它不会为您节省任何输入。

于 2012-04-06T09:36:09.517 回答