Tôi đang gặp sự cố khi gọi các phương thức từ mô-đun đi kèm bên trong công nhân phục hồi. Trong ví dụ dưới đây, tôi tiếp tục nhận được các lỗi phương thức không xác định khi tôi cố gắng gọi phương thức say
bên trong công nhân (trong mô-đun TestLib). Tôi đã giảm xuống mã vấn đề cơ bản để trần để minh họa cho vấn đề này:Rails Gỡ lỗi lỗi phương thức không xác định trong mô-đun bên ngoài
khiển (/app/controllers/test_controller.rb)
class TestController < ApplicationController
def testque
Resque.enqueue(TestWorker, "HI")
end
end
Thư viện (/ lib/test_lib. rb)
module TestLib
def say(word)
puts word
end
end
Worker (/ công nhân/test_worke r.rb)
require 'test_lib'
class TestWorker
include TestLib
@queue = :test_queue
def self.perform(word)
say(word) #returns: undefined method 'say' for TestWorker:Class
TestLib::say(word) #returns: undefined method 'say' for TestLib::Module
end
end
Rakefile (resque.rake)
require "resque/tasks"
task "resque:setup" => :environment
Tôi đang chạy resque sử dụng lệnh sau: rake environment resque:work QUEUE='*'
Gems: ray (3.0.4) redis (2.2.2) không gian tên đỏ (1.0.3) resque (1.19.0)
Máy chủ: nginx/1.0.6
Bất kỳ ai có ý tưởng gì về những gì đang xảy ra ở đó?
* headlap * Tôi nghĩ rằng tôi đã làm việc trong đường ray quá nhiều thời gian gần đây. Điều đó đã làm các trick. Cảm ơn! – internetoutfitters
+1 @tbuehlmann. –
Nếu bạn làm điều này và nó vẫn không hoạt động, hãy khởi động lại máy chủ của bạn – Kathan