我有一个模型,需要从辅助源加载外部数据。存在许多Web服务,我的模型可以从(可交换的)中获取数据,但是我不想创建代码,从而难以更改服务(成本因可变和固定使用而显着不同,并且可能会发生变化将被要求)。使用模块在导轨应用中的模型
我想创建一个驱动程序来执行交互(然后创建更多的自定义驱动程序,如果服务需要切换)。不幸的是,由于驱动程序和模型的紧密耦合,将代码提取到插件或gem中没有任何意义。我已经将所有代码提取到模块中(请参阅示例),并且目前已将代码声明在我的模型上方。
module Synchronize
def refresh
self.attributes = ...
self.save
end
end
class Data < ActiveRecord::Base
include Synchronize
end
Rails(3.0.0)有一个用于存储与模型紧密耦合的模块的约定吗?我应该使用插件来做到这一点吗?这与'app/helpers'目录有关吗?如果不是,最适合存储代码的地方在哪里?谢谢!