Model view controller 如果自定义代码没有';不适合模型或控制器?

Model view controller 如果自定义代码没有';不适合模型或控制器?,model-view-controller,ruby-on-rails-3.1,Model View Controller,Ruby On Rails 3.1,我对Rails还很陌生,目前我最关心的是将我的逻辑放在哪里,以维护面向对象的设计,同时坚持MVC模式。所以我想这是一个关于MVC的问题,也是关于Rails的问题。这是我的设想: 我的Rails应用程序中有一个导入功能,可以解析上传的订单Excel文件并导入其内容。当我编写函数时,我把它放在OrdersController中。我从一开始就知道这不是放置它的最佳位置,但我也不确定我是否想将它放在模型中。如果我将它放在模型中,它将作为一个类方法,例如Order::import_from_excel,也

我对Rails还很陌生,目前我最关心的是将我的逻辑放在哪里,以维护面向对象的设计,同时坚持MVC模式。所以我想这是一个关于MVC的问题,也是关于Rails的问题。这是我的设想:


我的Rails应用程序中有一个导入功能,可以解析上传的订单Excel文件并导入其内容。当我编写函数时,我把它放在OrdersController中。我从一开始就知道这不是放置它的最佳位置,但我也不确定我是否想将它放在模型中。如果我将它放在模型中,它将作为一个类方法,例如Order::import_from_excel,也许现在就可以了。但是,如果任务变得越来越复杂,可能需要将其分解为几个方法,模型就会变得杂乱无章。在这种情况下,我认为将整个导入功能移动到自己的类中是合适的,例如OrderImporter,这在非MVC、面向对象的环境中是完全正常的。但是我应该把这样一个类放在哪里,在lib中

将其放在模型中是合乎逻辑的,因此我认为使用类似于
Order::import\u from\u excel
的东西将是一个好主意。免责声明:我是肥胖模型、苗条控制器理念的倡导者,所以其他人可能对此持有不同意见


但是,您应该将功能封装到
lib/
中的一个单独类中,该类将从
import\u from\u excel
实例化并调用。这有助于可测试性,减少耦合,如果将来需要从Excel导入其他内容,可能会对您有所帮助。

谢谢!这很有道理。