带 Sidekiq 的回形针无法正常工作
Paperclip with Sidekiq not working
我创建了一个 Sidekiq worker,它将复制带有回形针附件的现有记录,但它似乎不起作用。
#controller
product = Product.find(2)
SuperWorker.perform_in(5.minutes, product.id)
#worker
class SuperWorker
include Sidekiq::Worker
def perform(product_id)
product = Product.find(product_id)
product.generate_clone
end
end
#product model
...
has_attached_file :front_image, :styles => { :medium => "415x500>", :thumb => "100x100>" }, :default_url => "/assets/thumbnail-default.jpg"
validates_attachment_content_type :front_image, :content_type => ['image/png']
has_attached_file :back_image, :styles => { :medium => "415x500>", :thumb => "100x100>" }, :default_url => "/assets/thumbnail-default.jpg"
validates_attachment_content_type :back_image, :content_type => ['image/png']
def generate_clone
new_product = self.dup
new_product.front_image = self.front_image
new_product.back_image = self.back_image
new_product.save
end
当我在控制台中复制记录时,它似乎起作用了,这就是为什么我很困惑为什么它在计划任务中不起作用的原因。这是我在 rails 控制台中的操作方式。
p = Product.find(2)
new_p = p.dup
new_p.front_image = p.front_image
new_p.back_image = p.back_image
new_p.save
这很好用,但在 sidekiq worker 中却不行。
如果我遗漏了什么,我希望你能指出我在这件事上做错了什么and/or。
谢谢。
埃拉夫
我通过不使用 .dup
函数解决了这个问题
p = Product.find(2)
new_p = Product.new
new_p.field1 = p.field1
new_p.field2 = p.field2
...
new_p.front_image = p.front_image
new_p.back_image = p.back_image
new_p.save
工作得很好。我希望这可以帮助遇到此问题的任何人。
谢谢。
我创建了一个 Sidekiq worker,它将复制带有回形针附件的现有记录,但它似乎不起作用。
#controller
product = Product.find(2)
SuperWorker.perform_in(5.minutes, product.id)
#worker
class SuperWorker
include Sidekiq::Worker
def perform(product_id)
product = Product.find(product_id)
product.generate_clone
end
end
#product model
...
has_attached_file :front_image, :styles => { :medium => "415x500>", :thumb => "100x100>" }, :default_url => "/assets/thumbnail-default.jpg"
validates_attachment_content_type :front_image, :content_type => ['image/png']
has_attached_file :back_image, :styles => { :medium => "415x500>", :thumb => "100x100>" }, :default_url => "/assets/thumbnail-default.jpg"
validates_attachment_content_type :back_image, :content_type => ['image/png']
def generate_clone
new_product = self.dup
new_product.front_image = self.front_image
new_product.back_image = self.back_image
new_product.save
end
当我在控制台中复制记录时,它似乎起作用了,这就是为什么我很困惑为什么它在计划任务中不起作用的原因。这是我在 rails 控制台中的操作方式。
p = Product.find(2)
new_p = p.dup
new_p.front_image = p.front_image
new_p.back_image = p.back_image
new_p.save
这很好用,但在 sidekiq worker 中却不行。
如果我遗漏了什么,我希望你能指出我在这件事上做错了什么and/or。
谢谢。
埃拉夫
我通过不使用 .dup
函数解决了这个问题
p = Product.find(2)
new_p = Product.new
new_p.field1 = p.field1
new_p.field2 = p.field2
...
new_p.front_image = p.front_image
new_p.back_image = p.back_image
new_p.save
工作得很好。我希望这可以帮助遇到此问题的任何人。
谢谢。