使用Ruby模块,您可以将一堆可能在一个地方使用的方法聚集在一起,然后将它们包含到一个类中,这样就好像您已将它们写入该类中一样。何时考虑在Rails应用程序中创建自己的Ruby模块?
Rails应用程序中的Ruby模块有哪些实际用途?
如果有人能提及一个他们实际使用自己模块的例子,我将不胜感激,因此我对我应该考虑创建它们的情况有所了解。谢谢。
使用Ruby模块,您可以将一堆可能在一个地方使用的方法聚集在一起,然后将它们包含到一个类中,这样就好像您已将它们写入该类中一样。何时考虑在Rails应用程序中创建自己的Ruby模块?
Rails应用程序中的Ruby模块有哪些实际用途?
如果有人能提及一个他们实际使用自己模块的例子,我将不胜感激,因此我对我应该考虑创建它们的情况有所了解。谢谢。
您可以将它们放在/ lib目录中,它们将会加载您的Rails项目。
例如,您可以查看旧项目的我的这个回购:lib directory of a Rails project
因此,例如,我有以下模块:
google_charts.rb
Module GCharts
class GoogleCharts
def some_method
end
end
end
在我的Rails应用程序
,任何地点,我可以访问方法。
所以,如果我是从控制器访问它,我只想做:
require 'google_charts'
GCharts::GoogleCharts.some_method
谢谢。实施细节很好理解。但是我正在考虑使用模块进行封装的Rails应用中的哪些类型的功能。 – lorz 2009-05-31 01:22:28
我们使用不依赖于ActiveRecord的模式,并没有被抽象成一个插件或功能模块宝石。
我们的生产代码库最近的一个例子是一个用于与Campaign Monitor进行电子邮件列表管理集成的库。该系统的核心使用我们的用户模型,但与extenrl服务的实际交互通过位于/ lib中的模块提取。
1)任何时间我即将复制(或基本上重复)的一段代码:“啊,我可以只切断/粘贴到这个其它控制器。”
2)任何时间余编写代码,这些代码将来会非常明显地被重用。 3)具有特定目的的相当大的代码,其目的与控制器/模型的主要目的相当不同。这与(2)有些相关,但有时代码不会被重用,但是模块有助于组织。
优秀的问题。好奇看看你得到了什么答案。 – fig 2009-05-31 01:17:38