【发布时间】:2015-12-16 07:31:50
【问题描述】:
我有一个像这样的 rake 任务:
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,但我的 rake 任务中没有出现 puts 或 Rails.logger.debug 语句。
我应该怎么做才能看到我在rails server 终端中的puts 和Rails.logger.debug 语句中放入的内容?
【问题讨论】:
-
怎么叫rake任务?
-
使用 AJAX。我的控制器内部路由的 AJAX url。我的控制器操作中有这个:
%x(bundle exec rake create_orders) -
这就是答案。
%x在子 shell 中运行命令。要共享应用程序资源,应使用Rake::Task[...].invoke调用 rake 任务。 -
问题是,当我使用
Rake::Task[...].invoke时,我总是收到此错误NameError (uninitialized constant MyController::Rake),这导致我的rake 任务根本没有运行。 -
只在动作内部还是在控制器的最顶端?
标签: ruby-on-rails ruby ruby-on-rails-4 rake rake-task