2011-10-20 75 views
1

我試圖將一個模塊包含到我的resque工作者中但是我一直收到這個錯誤 -Rails Resque - 在worker中包含來自rails lib的模塊

failed: #<NoMethodError: undefined method `build_page' for RefreshEventCache:Class> 

工作者 - /app/worker/refresh_event_cache.rb

require File.dirname(__FILE__) + '/../../lib/locomotive/render.rb' 
class RefreshEventCache 
    include Resque::Plugins::UniqueJob 
    include Locomotive::Render 

    @queue = :events_queue 

    def self.perform(url) 
    build_page(url) 
    end 
end 

模塊 -/lib/locomotive/render.rb

module Locomotive 
    module Render 

    extend ActiveSupport::Concern 

    module InstanceMethods 

     def build_page(full_path) 
     Rails.logger.debug "BUILDING PAGE" 
     end 
    end 
    end 
end 

任何想法?

+0

可能重複[Rails在外部模塊Resque undefined方法錯誤](http://stackoverflow.com/questions/8130071/rails-resque-undefined-method-error-in-external-module) – d3vkit

回答

2

您是否嘗試過在延長的ActiveSupport ::關注添加到主模塊機車這樣的:

module Locomotive 
    extend ActiveSupport::Concern 
    module Render 

    module InstanceMethods 

     def build_page(full_path) 
     Rails.logger.debug "BUILDING PAGE" 
     end 
    end 
    end 
end 

只是猜測,...香港專業教育學院使用單一模塊的擴展,但是這似乎是合乎邏輯的我。

+0

感謝您的答覆,試過這個,但仍然得到相同的錯誤 – Alex

+0

你已經嘗試過沒有子模塊渲染? – davidb

+0

對不起,你的意思是? – Alex