ruby-on-rails - 在 "tmp:clear"之后运行任务

标签 ruby-on-rails rake

我有一个任务想要在运行 rails tmp:clear

后运行
namespace :myapp do
  task :clear do
    # do some stuff
  end
end

我了解到我可以通过增强这项任务来做到这一点:

Rake::Task['tmp:clear'].enhance(['myapp:clear'])

问题是,当我的代码加载时,tmp:clear未定义,因此失败:

$ rails tmp:clear
rails aborted!
 Don't know how to build task 'tmp:clear' (See the list of available tasks with `rails --tasks`)
 myapp/lib/tasks/clear.rake:7:in `<top (required)>'

最佳答案

Rails 任务在本地任务之后加载。您需要先require 'rails/tasks'才能避免这种情况。

完整的解决方案:

require 'rails/tasks'

namespace :myapp do
  task :clear do
    puts "do some stuff"
  end
end

Rake::Task['tmp:clear'].enhance(['myapp:clear'])

关于ruby-on-rails - 在 "tmp:clear"之后运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57515478/

相关文章:

ruby-on-rails - 自定义 rake :stats

Mysql2::错误:无法连接到 '127.0.0.1' 上的 MySQL 服务器 (61)

ruby-on-rails - 清除或重新创建 Ruby on Rails 数据库

ruby-on-rails - "Can' t 批量分配 protected 属性 : admin"with sample_data. rake

ruby rake with rails 在生产中缺少常量,但在开发环境中工作

sql - Rails 查找关联的 has_many 记录为零的记录

ruby-on-rails - Mechanize 上传二进制数据

ruby-on-rails - 帮助 HAML : Mixing text and other HTML tags

ruby - 为什么这个 require 从 rake 中失败但在显式运行时成功?

mysql - 加载生产数据库模式时出现 rake 错误