Я довольно новичок в Rails, и меня больше всего беспокоит вопрос о том, где разместить свою логику, чтобы поддерживать объектно-ориентированный дизайн и в то же время придерживаться шаблона MVC. Так что я думаю, что это такой же вопрос о MVC, как и о Rails. Это мой сценарий:
У меня есть функция импорта в моем приложении Rails, которая анализирует загруженный Excel-файл заказов и импортирует его содержимое. Когда я написал функцию, я поместил ее в OrdersController. С самого начала я знал, что это не лучшее место для этого, но я не совсем уверен, что хочу добавить его и в модель. Если бы я поместил его в модель, он был бы как метод класса, например Order :: import_from_excel, и, может быть, сейчас все будет в порядке. Но если задача будет расти и усложняться, ее, вероятно, придется разделить на несколько методов, и модель будет загромождена. Я бы в этом случае счел целесообразным переместить всю функциональность импорта в свой собственный класс, например OrderImporter, который был бы совершенно нормальным в объектно-ориентированной среде без MVC. Но куда бы я поместил такой класс в lib?