Как я могу вызвать действие контроллера из задачи rake? - PullRequest
7 голосов
/ 24 марта 2010

У меня есть действие контроллера, которое генерирует несколько отчетов Excel, это занимает около 10 минут. Иногда я звоню из моего веб-приложения, поэтому это действие.

Но я также хочу создать задачу rake для ее запуска, чтобы я мог запланировать ее автоматическое выполнение раз в ночь.

Есть ли способ сделать это?

Ответы [ 2 ]

3 голосов
/ 24 марта 2010

Я думаю, вам придется перенести ваш код в вашу модель.Поскольку знание о рендеринге вывода в моделях плохо, я бы посоветовал включить в модель всю бизнес-логику и манипулирование данными, а затем включить код рендеринга в задачу rake.Это сделало бы задачу rake аналогичной контроллеру, используемому в сети, - поддерживая разделение интересов.

Вы можете посмотреть на ActionView :: Base и поработать, чтобы выяснить, как запустить рендеринг шаблонов.

3 голосов
/ 24 марта 2010

Можете ли вы справиться с генерацией отчетов из ваших моделей? Модели должны выполнять большую часть работы в любом случае и могут быть доступны из задач Rake:

task :reports => :environment do
  ...
  # Do stuff with your models.
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...