在 Rails 上运行自定义 Rake 任务

Nin*_*nRa 3 ruby rake ruby-on-rails rake-task

我正在尝试创建自定义rake任务,但似乎无法使其正常工作。我的代码如下所示:

namespace :demotask do

  desc "display the current environment of rake"
  task :current_environment => :environment do
    puts "You are running rake task in #{Rails.env} environment"
  end

end
Run Code Online (Sandbox Code Playgroud)

并放置在test.rake名为lib/tasks. 就Rakefile在那里,但在控制台中运行任务时我确实收到此错误:

NameError: undefined local variable or method 'current_environment' for main:Object

我也尝试重新启动服务器。

mar*_*ets 5

您应该使用namespace从终端调用它,并且使用 可能是个好主意bundler

bundle exec rake demotask:current_environment
Run Code Online (Sandbox Code Playgroud)

另外,尝试将任务定义更改为:

task :current_environment => :environment do
...
Run Code Online (Sandbox Code Playgroud)

包括=> :environment将告诉 Rake 加载完整的应用程序环境。