我有一个使用文档扫描仪(Epson WorkForce 545)的 Rails 应用程序。我有两个模型:文档和扫描仪。我很难确定我应该将代码放在哪里进行实际扫描操作。我最初认为我应该在 Scanner 模型中有一个scan方法来存放代码。但是,根据我的阅读,我应该只在模型中保留与数据库相关的操作(请参阅Yehuda 的回答here)。在模型中包含扫描仪逻辑似乎违反了这个想法。
然后我想我应该创建一个名为 ScannerUtilities 的模块并将其放在 /lib 文件夹中。我想这会起作用,但是将与模型密切相关的代码卡在 /lib 文件夹中是否有意义?此外,由于扫描仪用于创建 Document 对象,因此我从 Document 控制器调用scan方法。因此,代码涉及多个模型和控制器。
从我的 OO 思维来看,对象所做的应该被定义为该类的方法。那么,如果扫描仪扫描,扫描方法不应该在 Scanner 模型中吗?
放置此代码的最佳位置在哪里?
谢谢!