因此,我正在编写一个小型gem,并在其中包含一个“/ tasks”目录,其中包含一些特定的rake任务。如何在需要gem的任何地方自动使这些任务可用?例如,我希望在安装了gem之后,可以在rails根目录中运行“rake mygemrake:task”。

最佳答案

对于Rails3应用程序,您可能需要考虑为自己的 gem 制作Railtie。

您可以执行以下操作:

lib / your_gem / railtie.rb

require 'your_gem'
require 'rails'
module YourGem
  class Railtie < Rails::Railtie
    rake_tasks do
      require 'path/to/rake.task'
    end
  end
end

lib / your_gem.rb
module YourGem
  require "lib/your_gem/railtie" if defined?(Rails)
end

不过,在rake.task中要求railtie.rb文件时,我遇到了很多困难。我选择只在rake_tasks块中定义我的measley一两个任务。

关于ruby - 使来自 gem 的 rake 任务随处可见?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/742633/

10-13 02:15