因此,我正在编写一个小 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
不过,我在要求 railtie.rb
中的 rake.task
文件时遇到了一些困难。我选择只在 rake_tasks
block 中定义我的 measley 一两个任务。
关于ruby - 让 gem 的 rake 任务随处可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742633/