Domanda

Sto cercando di includere un modulo nel mio resque worker ma continuo a ricevere questo errore -

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

Il lavoratore - /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

Il modulo - /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

Qualche idea?

È stato utile?

Soluzione

Hai provato ad aggiungere l'estensione ActiveSupport :: Concern al modulo principale Locomotive in questo modo:

module Locomotive
  extend ActiveSupport::Concern
  module Render

    module InstanceMethods

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

Sto solo indovinando, ... Ho usato l'estensione con singoli moduli ma questo mi sembra logico.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top