2012-07-19 78 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

相关问题