【发布时间】:2017-09-27 15:19:32
【问题描述】:
我找到this gem 一起使用引导进度条和延迟作业宝石。在他的示例中,他使用 .haml 文件,但我在我的项目中使用 erb 和 coffeescript,所以我尝试重现他所做的。
这是我的控制器
def export
@job = Delayed::Job.enqueue StandingsJob.new
end
这是 routes.rb
get 'export', to: 'scraper#export'
这是我的 home.erb.html
<%= link_to 'export', export_path, {id:'mario', remote: true} %>
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar"
aria-valuenow="0" aria-valuemin="0" aria-valuemax="100" style="width:0%">
0%
</div>
</div>
这是我的 coffeescript 文件
$(document).on "turbolinks:load", ->
$('#mario').on 'click', ->
alert('hocliccatoooo')
interval = setInterval( ->
$.ajax(
url: '/progress-job/' **** What should I add here?????****,
success: (job) ->
console.log('loool')
stage
progress
if job.last_error != null
$('.progress-status').addClass('text-danger').text(job.progress_stage);
$('.progress-bar').addClass('progress-bar-danger');
$('.progress').removeClass('active');
clearInterval(interval);
if job.progress_stage != null
stage = job.progress_stage
progress = job.progress_current / job.progress_max * 100
else
progress = 0
stage = 'Uploading file?'
if progress != 0
$('.progress-bar').css('width', progress + '%').text(progress + '%')
$('.progress-status').text(stage);
error: ->
alert('errore')
$('.progress').removeClass('active');
$('.progress-bar').css('width', '100%').text('100%');
$('.progress-status').text('Finito!!!');
clearInterval(interval);
)
, 100)
当我点击链接时代码运行正确,唯一的问题是,我如何告诉我的咖啡脚本我在控制器操作中创建的作业的 ID? 谢谢大家
[编辑]
这是我的工作
class StandingsJob < ProgressJob::Base
def perform
update_stage 'Faccio cose'
update_progress_max 10
for i in [0..10]
sleep(2)
update_progress
end
end
end
我做了一些挖掘,似乎我的工作的 perfom 方法从未被解雇(我在我的 perform 方法中放了一个 puts 'lol',但我从未在控制台中看到它)
【问题讨论】:
标签: javascript ruby-on-rails coffeescript progress-bar bootstrap-4