Как увидеть, что задача rake ставит / регистрирует внутри сервера rails?

У меня есть одна задача грабли, как это:

task :create_orders, [:my_param] => :environment do |t, args|
    puts "hello"
    Rails.logger.debug "hey"
end

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

Но я не вижу, что я поместил в puts и Rails.logger.debug внутри своего терминала, где я запускаю команду rails server для запуска сервера localhost.

Я также пытаюсь запустить tail -f log/development.log в папке моего проекта, но ничего puts или Rails.logger.debug из моей задачи rake не появляется.

Что мне сделать, чтобы я мог видеть, что я поместил в операторы puts и Rails.logger.debug в моем терминале rails server?


person Zulhilmi Zainudin    schedule 16.12.2015    source источник
comment
Как вы называете рейк-задачу?   -  person Aleksei Matiushkin    schedule 16.12.2015
comment
Использование АЯКС. URL-адрес AJAX для маршрута внутри моего контроллера. У меня есть это внутри моего действия контроллера: %x(bundle exec rake create_orders)   -  person Zulhilmi Zainudin    schedule 16.12.2015
comment
Это ответ. %x запускает команду в подоболочке. Для совместного использования ресурсов приложения следует вызывать задачи rake с помощью Rake::Task[...].invoke.   -  person Aleksei Matiushkin    schedule 16.12.2015
comment
Проблема в том, что когда я использую Rake::Task[...].invoke, я всегда получаю эту ошибку NameError (uninitialized constant MyController::Rake), из-за которой моя задача rake вообще не запускается.   -  person Zulhilmi Zainudin    schedule 16.12.2015
comment
Только внутри действия или в самом верху контроллера?   -  person Zulhilmi Zainudin    schedule 16.12.2015
comment
Хорошо, я положил его на самый верх моего контроллера. Теперь я получаю эту ошибку: RuntimeError (Don't know how to build task 'create_orders')   -  person Zulhilmi Zainudin    schedule 16.12.2015


Ответы (1)


Я положил это на самый верх моего контроллера:

require 'rake'
Rails.application.load_tasks

И внутри действия, вызывающего задачу rake, я заменил %x(bundle exec rake task_name) на Rake::Task["task_name"].invoke.

Спасибо, мудасобва, за помощь!

person Zulhilmi Zainudin    schedule 16.12.2015