【问题标题】:Custom rake task for mountable engine可安装引擎的自定义 rake 任务
【发布时间】:2015-04-10 17:25:46
【问题描述】:

我无法在我创建的可安装引擎中运行自定义 rake 任务。创建可挂载引擎时,默认情况下会有一个 Rails.root/lib/tasks 目录,其中包含一个以引擎命名的 rake 文件:

internal_management_system.rake

在这个文件中,我创建了一个简单的任务:

task :internal_management_system do
  puts 'hello world'
end 

现在从 Rails.root 目录,我尝试运行它:

$ rake internal_management_system
rake aborted!
Don't know how to build task 'internal_management_system'

我做错了什么?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    如果你给你的任务一个命名空间,它应该可以工作。所以在你的 internal_management_system.rake 文件中放:

    namespace :db do
     task :internal_management_system do
      puts 'hello world'
     end 
    end
    

    然后运行命令:

    $ rake db:internal_management_system
    

    【讨论】:

    • 这对于常规应用程序来说可以正常工作。但这不适用于可挂载引擎。
    【解决方案2】:

    解决方案是从虚拟应用根目录运行它。显然你不能从引擎根目录运行它。

    所以在引擎根目录中,你有

    /lib/tasks/hello.rake
    

    及其内容:

    task :hello do
      puts 'hello world'
    end
    

    然后转到虚拟应用程序并运行rake hello

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2012-02-01
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多