gpt4 book ai didi

javascript - 使用 coffeescript 的 Rails 进度作业

转载 作者:行者123 更新时间:2023-11-30 21:07:43 24 4
gpt4 key购买 nike

我找到了 this gem一起使用 Bootstrap 进度条和延迟作业 gem。在他的例子中,他使用了 .haml 文件,但我在我的项目中使用了 erb 和 coffeescript,所以我试图重现他所做的。

这是我的 Controller

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)

当我点击链接时,代码运行正确,唯一的问题是,我如何告诉我的 coffeescript 我在 Controller 操作中创建的作业的 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' 但我从未在控制台中看到它)

最佳答案

间隔 = 设置间隔( -> var paramJob = '<%=@job.to_json%>';//获取@job 参数 ->

//使用字符串 "&"+ "quot;"代替 SYM

var jobObj = JSON.parse(('{' + paramJob.slice(paramJob.indexOf("SYMid"), paramJob.length)).replace(/SYM/g, '"'));//参数处理

//在ajax中使用jobObj.idurl: '/progress-job/' + jobObj.id,

希望对您有所帮助!

关于javascript - 使用 coffeescript 的 Rails 进度作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46451598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com