如何設置我的Product
對象的持續時間?因此,當產品由用戶創建時,它將JS計數器設置爲1 day
,然後在時鐘用完時銷燬/取消激活@product
。對象持續時間ruby on rails
我知道如何使用Sidekiq異步執行此操作。事情是我不知道如何讓我的工作客戶端JS倒計時紅寶石工作。而且,如何告訴Rails每次創建產品時都會有1天的時間(可能是回調?)。
def end_time
self.destroy in 1.days
self.update_attribute(:end_time, Time.now)
end
編輯:
它會引發錯誤的視圖。
Illegal nesting: content can't be both given on the same line as %div and nested within it.
這是模型。
#countdown{"data-created-at" => @product.created_at}
%digits
%span.days
%pcd DAYS
%digits
%span.hours
%pcd HRS
%digits
%span.minutes
%pcd MINS
%digits
%span.seconds
%pcd SECS
products.js
function getTimeRemaining(endtime){
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t/1000) % 60);
var minutes = Math.floor((t/1000/60) % 60);
var hours = Math.floor((t/(1000*60*60)) % 24);
var days = Math.floor(t/(1000*60*60*24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(id, endtime){
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.days');
var hoursSpan = clock.querySelector('.hours');
var minutesSpan = clock.querySelector('.minutes');
var secondsSpan = clock.querySelector('.seconds');
function updateClock(){
var t = getTimeRemaining(endtime);
daysSpan.innerHTML = t.days;
hoursSpan.innerHTML = ('0' + t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + t.seconds).slice(-2);
if(t.total<=0){
clearInterval(timeInterval);
}
}
updateClock();
var timeInterval = setInterval(updateClock,1000);
}
var deadline = 'December 15 2015 00:00:50 UTC+0200';
initializeClock('countdown', deadline);
嘗試使用調度程序來執行此操作。 –
您可以使用cronjob在1天后刪除記錄。只需在數據庫中設置end_time並運行後臺作業,以檢查是否存在end_time已達到的產品,然後刪除該產品。 –
沒問題。我知道如何使用Sidekiq異步運行。事情是我不知道如何讓我的工作客戶端JS倒計時紅寶石工作。而且,如何告訴Rails每次創建產品時都會有1天的時間(可能是回調?)。 – Liroy