对象属性不在后台更新

时间:2015-09-15 16:19:02

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

我正在尝试使用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保持不变。有什么建议吗?

2 个答案:

答案 0 :(得分:2)

  

根据控制台没有错误

您是否使用类似

之类的内容从控制台进行检查
BodyWorker.perform_async(offer.id)

然后想知道为什么你的offer没有更新?这是Offer的另一个实例,已更新并保存。而你的不会从数据库中神奇地拉出最新状态。使用

之类的东西手动刷新它
offer.reload

答案 1 :(得分:0)

  

保护

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

尝试

offer.save!