ドキュメント スキャナー (Epson WorkForce 545) を使用する Rails アプリケーションがあります。Document と Scanner の 2 つのモデルがあります。実際のスキャン操作のコードをどこに置くべきかを判断するのに苦労しています。私は当初、コードを格納するために Scanner モデルにscanメソッドが必要だと考えていました。ただし、私が読んだことから、モデルにはデータベース関連の操作のみを保持する必要があります (イェフダの回答はこちらを参照してください)。モデル内にスキャナ ロジックを配置することは、この考えに違反しているようです。
次に、ScannerUtilities というモジュールを作成し、それを /lib フォルダーに配置する必要があると考えました。それはうまくいくと思いますが、モデルと非常に密接に関係するコードを /lib フォルダーに閉じ込めておくのは理にかなっていますか? また、スキャナは Document オブジェクトの作成に使用されるため、Document コントローラからscanメソッドを呼び出しています。そのため、コードは複数のモデルとコントローラーに関係しています。
私のオブジェクト指向の考え方からすると、オブジェクトが何をするかは、そのクラスのメソッドとして定義されるべきです。では、スキャナーがスキャンする場合、スキャン方法はスキャナー モデルに含まれるべきではないでしょうか?
このコードを配置するのに最適な場所はどこですか?
ありがとう!