【问题标题】:displaying delayed_job handler in a view在视图中显示延迟作业处理程序
【发布时间】:2015-03-30 09:49:28
【问题描述】:

您能告诉我如何在我的视图中显示延迟作业处理程序吗?我的控制器返回延迟作业的 JSON 对象。在执行以下代码时,我在视图中显示 JSON,但不显示处理程序。

****delayed_job_controller.rb****
def show
  @job = Delayed::Job.find(params[:id])

  respond_to do |format|
    format.json { render(json: {payload: @delayed_job.handler}.to_json) } 
    format.html

  end
end

****_list_row.html.haml****

%td=link_to item.id, admin_delayed_job_path(item)
%td=link_to "[+]", '#', class: 'handler'
- %w(priority attempts created_at run_at failed_at).each do |k|
  %td= item.send k

-if can? :destroy, item
  %td=link_to "Delete",admin_delayed_job_path(item), method: :delete

****delayed_jobs.js.coffee****

class DelayedJobAdmin
  constructor: (tableSelector) ->
  @table = $(tableSelector)
  console.log @table
  @initBehaviours()

initBehaviours: =>
  @table.find('a.handler').click (e)=>
    e.preventDefault()

    p = $.ajax {
      url: '/admin/delayed_jobs/280.json'
      success: (res) ->
        $.each res, (index, element) ->
        $('.handler').html(element)



      error: (res) ->
        console.log 'error',res
    }


 $(document).on 'ready', ->
  new DelayedJobAdmin(".delayed-job-admin")

【问题讨论】:

    标签: ruby-on-rails ajax json handler delayed-job


    【解决方案1】:

    您将作业分配给 @job 变量,但在渲染 JSON 时,您使用 @delayed_job 变量。

    试试这个:

    def show
      @job = Delayed::Job.find(params[:id])
    
      respond_to do |format|
        format.json { render(json: {payload: @job.handler}) } 
        format.html
    
      end
    end
    

    另外,您不需要在哈希上调用.to_json,它会为您完成。

    【讨论】:

      猜你喜欢
      • 2012-03-24
      • 2011-03-12
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2011-08-30
      • 2016-04-16
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多