【问题标题】:Object attributes not updating in the background对象属性不在后台更新
【发布时间】:2015-09-16 01:42:06
【问题描述】:

我正在尝试使用 sidekiq 在后台通过受保护的方法更新我的对象正文字段:

class BodyWorker
  include Sidekiq::Worker
  sidekiq_options retry: false

  def perform(offer_id)
    offer = Offer.find(offer_id)

    remove_html(offer)
    offer.publish!
  end

    protected

      def remove_html(offer)
        offer.body = ''
        offer.save
      end

根据控制台没有错误,但是 offer.body 保持不变。有什么建议吗?

【问题讨论】:

  • 你有没有想过这个问题?我遇到了类似的问题,我不知道该怎么办。

标签: ruby-on-rails ruby ruby-on-rails-4 sidekiq


【解决方案1】:

根据控制台没有错误

你是否使用类似的东西从控制台检查

BodyWorker.perform_async(offer.id)

然后想知道为什么您的offer 没有更新?这是已更新并保存的 Offer 的另一个实例。而且您的不会神奇地从数据库中提取最新状态。使用类似的东西手动刷新它

offer.reload

【讨论】:

  • 感谢您的提示,但我仍然无法使用工作人员中的方法保存任何更改。
  • 好吧,太糟糕了?我的水晶球今天显示出很多静电。 (提示:sscce.org
【解决方案2】:

受保护

 def remove_html(offer)
   offer.body = ''
  offer.save
 end

试试

offer.save!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 2012-03-01
    • 2019-10-31
    • 1970-01-01
    • 2021-03-11
    • 2020-07-16
    • 2012-03-16
    相关资源
    最近更新 更多