我的rails应用程序中的某些
功能看起来更好,就好像它是一个单独的“模块”,应该通过require访问.例如,假设它是计算斐波纳契数的
函数.
该功能独立于rails应用程序,可以在其他项目中重用,因此我不应该将它存储在应用程序控制器和模型附近.但是因为我不打算将它分离到单独的项目中,所以把它放到供应商文件夹似乎不是正确的事情.
我应该把它放在哪里?
放置可重用
代码的地方就在lib目录中.但是,您不需要任何
内容,因为lib已经在加载路径中,并且它的
内容将在初始化期间加载.
如果您需要扩展现有类,则首先定义模块,然后通过将其作为消息发送到您希望扩展的类来包含它,例如:
module MyExtensions
def self.included base
base.instance_eval do
def my_new_method
…
end
end
end
end
ActiveRecord::Base.send :include,MyExtensions