1

Rails 2アプリでdelayed_jobを使用するために、現在の作業タスク(本番環境およびコンソール)を移動しようとしていますが、エラーが発生し続けます:

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

Gemfile

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

1 に答える 1

1

さて、何度も頭を叩いた後、私はそれを理解したので、次の人を助けるためにこれを投稿しています。問題は、バービーライブラリが見つからなかったため、クラスの最初にrequireを追加しました。

require "barby/outputter/rmagick_outputter"
require "barby/barcode/code_128"
于 2012-07-20T07:05:39.887 に答える