【发布时间】:2016-08-26 00:47:54
【问题描述】:
我有一个名为 pull_orders 的 rake 任务,它调用 RemoteDbConnector 类的方法来执行诸如建立与外部数据库的连接、生成原始 SQL 查询、执行查询以及在本地数据库中存储记录等操作。
在尝试对其进行测试时,我偶然发现了this answer,这让我开始思考我的设计是否存在缺陷。
rake 任务真的应该是一个班轮吗?如果是这样,考虑到它们需要按特定顺序调用,我应该把所有这些方法调用放在哪里?
我的任务如下所示:
namespace :db do
desc 'finds and populates data from remote db'
task pull_orders: :environment do
...
columns = ...
table = ...
options = ...
column_mappings = ...
RemoteDbConnector.generate_query(...)
RemoteDbConnector.execute_query(...)
RemoteDbConnector.map_column_names(...)
Order.create(...) #creates records based on hash generated by RemoteDbConnector
...
end
end
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 rake