delayed_job_active_record - 未定义的方法`any?'

时间:2015-06-06 06:51:44

标签: ruby-on-rails activerecord delayed-job

尝试使用delayed_job_active_record将一些内容发送到后台,但为什么我不能使用begin delete from temp; insert into temp values (1); dbms_output.put_line('Done'); end; / select * from table; ?当事情没有发送到后台时工作正常。

any?

index.html.erb

undefined method `any?' for #<Delayed::Backend::ActiveRecord::Job:0x000000044b1348>

main_controller.rb

<% if @products.any? %>
  <div class="products">
    <% @products.each do |product| %>
      <%= product.name %>
    <% end %>
  </div>
<% else %>
  <div class="products processing">

    <!-- Try again later -->

  </div>
<% end %>

affiliate.rb

class MainController < ApplicationController
  def index
    # Delay fetching
    @products = Affiliate.delay.fetch
  end
end

1 个答案:

答案 0 :(得分:2)

这不起作用,因为@products不再是一个数组 - 它是对将来某个时间执行的作业的引用

您需要重新考虑设置的工作原理。例如,您的视图可以通过Ajax进行轮询以查看作业是否已完成。如果它已从DB获取结果,因为您似乎在那里保存API结果。