2012-07-19 81 views
1

我試圖移動當前的工作任務(在生產和控制檯)使用的delayed_job在Rails 2應用程序,但不斷收到錯誤:delayed_job的賦予「NameError:未初始化的常量」

ThermalImageJob failed with NameError: uninitialized constant Barby::Code128B 

我已經通過其他人的代碼尋找一個無濟於事的答案。這裏是我的代碼:

/lib/thermal_image_job.rb

class ThermalImageJob < Struct.new(:order_id) 
    def perform 
    order = Order.find(order_id) 
    order.tickets.each do |ticket| 
     ticket.barcodes.each do |barcode| 
     barcode.generate_thermal_image 
     end 
    end 
    end 
end 

/app/controllers/orders_controller.rb

Delayed::Job.enqueue(ThermalImageJob.new(@order.id)) 

/app/models/barcode.rb

def generate_thermal_image(format=:gif) 
    filename = "#{barcode}_thermal.#{format}" 
    temp_file_path = File.join("#{RAILS_ROOT}", 'tmp', filename) 
    unless FileTest.exists?(temp_file_path) 
    barcode_file = File.new(temp_file_path, 'w') 
    code = Barby::Code128B.new(barcode) 
     .... 
end 

寶石文件

gem "delayed_job", "2.0.7" 
gem "daemons", "1.0.10" 

回答

1

好吧,在經過很多頭撞後,我找到了答案,所以我發佈了這個帖子來幫助下一個人。問題是,它無法找到巴比庫,所以我加了一個需要在我的課的開頭:

require "barby/outputter/rmagick_outputter" 
require "barby/barcode/code_128" 
+0

這實際上是從巴比的安裝後的消息 - '巴比不再要求所有條碼符號系統默認。你將有 要求你需要的。例如,如果你需要EAN-13, 需要'barby/barcode/ean_13';有關符號體系及其文件名的完整列表,請參閱README.' – sevenseacat 2014-06-16 09:10:26

相關問題