我在创建Rails插件时遇到问题,可以称其为Mplug。该插件几乎只是一个rake任务,但具有rake任务使用的库。Rails插件需要问题
问题是需要文件。可以说这是耙子任务:
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'
我并不想这样做,当然。
有没有什么好办法解决这个问题?
谢谢!
嗯... 了会怎样,然后需要声明中供应商/插件/ mplug/lib中/ mplug.rb是什么? 我仍然需要在该文件中这样做: 需要'vendor/plugins/mplug/lib/mplug/indexer' – rejeep 2009-12-08 08:22:25
当Rails启动时,大多数插件都使用init.rb来要求文件。 我建议你阅读一下Rails指南:http://guides.rubyonrails.org/plugins.html 它给出了构建你的rails插件目录,init.rb,require等的最佳实践。 – jkrall 2009-12-10 14:30:44