现在,我正在开发一个应用程序,它接收库存文件(csv),解析它,并将其保存到数据库中。首先,我要创建一个清单类,它将解析csv,并在构建的库存数据库上执行业务逻辑。但现在看来我应该把这些问题分开。csv文件将每天更新,因此解析是应用程序的一个重要部分。
因此,我现在创建一个类Feed来处理库存提要(.csv),解析它,检查错误,甚至可能充当json端点。唯一的问题是,这个类不需要持久化它的数据,库存类会这样做。所以,如果这个Feed类是一个好主意,我如何将它包括在一个Rails项目中?作为一个没有模型的控制器?作为.rb文件在/lib中?我应该为此使用rake任务吗?其他选择?
发布于 2014-02-12 15:54:04
Feed可以是包含以下内容的ActiveRecord模型:
在控制器中,使用新创建的对象启动后台作业,负责处理文件并更新其状态。
通过这种方式,您可以跟踪所需的所有更改,并保留历史记录(是否,您选择更新状态或在成功时破坏)。但关键是背景工作有时会失败,你需要一个解决方案。
至于将csv解析代码放在哪里,我会使用一个服务对象:由于您严重依赖于您的模型,所以我不会将它放在lib中(或者可能是解析逻辑的一部分,而不是模型创建)。
https://stackoverflow.com/questions/21732671
复制相似问题