Вызов граблей от обозревателя ActiveRecord - PullRequest
1 голос
/ 11 июня 2010

Могу ли я сделать следующее?

def ModelObserver < ActiveRecord

   def after_save
     Rake::Task[name].invoke
   end

end

В данный момент возвращается следующая ошибка:

Don't know how to build task 'name'

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 11 июня 2010

Используйте системную команду:

def ModelObserver < ActiveRecord

   def after_save
     system "rake #{name}"
   end

end
2 голосов
/ 04 ноября 2010

В Rails3, если вы все еще хотите вызвать грабли следующим образом:

Rake::Task[name].invoke

нужно поставить

[Application].load_tasks

перед командой invoke, где application - это имя вашего приложения. Например я должен был поставить

Ead::Application.load_tasks
2 голосов
/ 11 июня 2010

Попробуйте использовать отложенное задание или аналогичный плагин для обработки в фоновом режиме.В обозревателе (или контроллере) просто уведомите демон фонового задания, что он должен позаботиться о каком-либо действии, а не запускать это задание напрямую.

0 голосов
/ 11 июня 2010

Полагаю, вам сначала нужно загрузить среду Rake и файл Rakefile.Я бы не стал вызывать полнофункциональную командную строку для этого.Вам, вероятно, нужно использовать «импорт», как это можно найти в Rake API

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...