我有一个模型需要从辅助源加载外部数据。存在许多 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”目录相关联吗?如果不是,最适合存储代码的位置在哪里?谢谢!