因此,我正在编写一个小型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/