在Rails中的模块中包含插件

时间:2011-07-14 15:58:00

标签: ruby-on-rails plugins module include

这是一个明确的新问题:

我在lib/目录中定义了一个模块,我从扫地机调用并作为rake任务调用。在模块内部,我想引用我的spawn插件。只包含该插件中的方法不起作用(未定义的方法错误),也没有尝试过任何版本的require或include。我需要做些什么才能加入它?

谢谢!

修改

这是我最近的努力:

require 'vendor/plugins/spawn/init.rb'

module MyModule

  include Spawn

  def self.my_method

     spawn(:method => :thread, :nice => 9) do # also tried Spawn::spawn

         ...

     end
  end
end

我得到的错误是:

undefined method 'spawn' for MyModule:Module #spawnundefined method 'spawn' for Spawn:Module # Spawn::spawn

1 个答案:

答案 0 :(得分:0)

包含必须在插件中完成。当您“重新打开”某个模块(位于lib / dir中)时,请记住在对其进行更改(模块)之前需要原始文件。

编辑: 考虑到插件是第三方,您可以尝试:

Spawn.module_eval do
  module_function :spawn
  public :spawn
end

module MyModule
  def self.my_method
    Spawn.spawn(...)
  end
end