我在创建 Rails 插件时遇到问题,我们称之为 Mplug。该插件几乎只是一个 rake 任务,但带有一个 rake 任务使用的库。
问题是需要文件。可以说这是 rake 任务:
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
这将无法识别常量 Mplug。所以我认为我需要它。
require 'mplug'
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
但后来我收到了这个消息。
no such file to load -- mplug
那么好吧。让我们尝试给出插件的路径。
require 'vendor/plugins/mplug/lib/mplug'
namespace :mplug do
task :create do
Mplug::Indexer.new
end
end
这实际上有效。但是,除了我认为这是一种不好的方法之外,我现在必须要求插件中的文件,就好像我在 rails 根目录中一样。例如:
module Mplug
end
require 'mplug/indexer'
现在必须是:
module Mplug
end
require 'vendor/plugins/mplug/lib/mplug/indexer'
我当然不想这样做。
有什么巧妙的方法可以解决这个问题吗?
谢谢!