Rails: 带回调的倒数计时器
Rails: Countdown timer with callback
您好,我正在尝试实现倒数计时器,我的应用程序中有一个 "oferts" 模型,您可以设置它可用的时间以及倒计时播放的位置。
经过大量研究,我发现了这个 Gem,它的效果非常好,但我遇到了一个问题,倒计时到达 cero 时如何获取事件?
我的意思是,我的 "oferts" 模型有一个布尔属性 "active",我想在倒计时结束时将属性 "active" 更改为 false
你会怎么做?有什么建议吗? gem 我使用的是正确的吗?
感谢您的帮助
伟大的我们 grupoly 实现了您所描述的这样一个系统。
但是你想错了,我会为任何需要这个的人提供解决方案。
首先,我会像这样在 oferts 模型中创建一个范围:
#ofert.rb
scope :are_ready_to_inactive, -> {
where(active: true).where('ends_at <= ?', Time.zone.now)
}
所以我假设你有一个名为 ends_at
的属性,所以我们得到所有的 ends_at
小于当前时间的 oferts,这意味着所有的 oferts 都过期了。
然后你只需要创建一个 rake 任务来停用所有那些已经过期的 oferts:
#lib/tasks/oferts.rake
namespace :oferts do
desc "Inactive oferts with cron on certain time"
task inactivatethem: :environment do
Ofert.are_ready_to_inactive.find_each do |ofert|
ofert.update_attributes active: false
end
end
end
现在太好了,如果你 运行 在你的控制台 rake oferts:inactivatethem
你将停用所有已经过期的 oferts,你可以每分钟 运行 这个抽取任务,例如使用 gem 喜欢每当 gem
#config/schedule.rb
every 1.minute do
rake 'oferts:inactivatethem'
end
现在如果你需要实时显示倒计时,你可以使用像jQueryCountDown这样的jQuery插件,我想有一个gem可以用于资产管道,您只需按照那里的说明操作即可。
我想让你明白,倒计时只是 "visual" 这意味着它只针对用户,它是一个只对客户端有意义的计时器,在后端你有你的抽佣任务运行每分钟寻找过期的 oferts 并停用它们。
我不会向您提供有关如何显示计时器的详细信息,因为那只是 jQuery 东西。
希望对大家有所帮助。
您好,我正在尝试实现倒数计时器,我的应用程序中有一个 "oferts" 模型,您可以设置它可用的时间以及倒计时播放的位置。
经过大量研究,我发现了这个 Gem,它的效果非常好,但我遇到了一个问题,倒计时到达 cero 时如何获取事件?
我的意思是,我的 "oferts" 模型有一个布尔属性 "active",我想在倒计时结束时将属性 "active" 更改为 false
你会怎么做?有什么建议吗? gem 我使用的是正确的吗?
感谢您的帮助
伟大的我们 grupoly 实现了您所描述的这样一个系统。
但是你想错了,我会为任何需要这个的人提供解决方案。
首先,我会像这样在 oferts 模型中创建一个范围:
#ofert.rb
scope :are_ready_to_inactive, -> {
where(active: true).where('ends_at <= ?', Time.zone.now)
}
所以我假设你有一个名为 ends_at
的属性,所以我们得到所有的 ends_at
小于当前时间的 oferts,这意味着所有的 oferts 都过期了。
然后你只需要创建一个 rake 任务来停用所有那些已经过期的 oferts:
#lib/tasks/oferts.rake
namespace :oferts do
desc "Inactive oferts with cron on certain time"
task inactivatethem: :environment do
Ofert.are_ready_to_inactive.find_each do |ofert|
ofert.update_attributes active: false
end
end
end
现在太好了,如果你 运行 在你的控制台 rake oferts:inactivatethem
你将停用所有已经过期的 oferts,你可以每分钟 运行 这个抽取任务,例如使用 gem 喜欢每当 gem
#config/schedule.rb
every 1.minute do
rake 'oferts:inactivatethem'
end
现在如果你需要实时显示倒计时,你可以使用像jQueryCountDown这样的jQuery插件,我想有一个gem可以用于资产管道,您只需按照那里的说明操作即可。
我想让你明白,倒计时只是 "visual" 这意味着它只针对用户,它是一个只对客户端有意义的计时器,在后端你有你的抽佣任务运行每分钟寻找过期的 oferts 并停用它们。
我不会向您提供有关如何显示计时器的详细信息,因为那只是 jQuery 东西。
希望对大家有所帮助。