【发布时间】:2014-11-22 00:34:17
【问题描述】:
我有一个应用程序,它使用 SuckerPunch gem 和 Carrierwave Backgrounder 在 Rails 应用程序的背景中上传和处理图像。因此,当用户创建 Asset 模型的实例时,在处理图像时,Asset 模型中有一个属性attachment_processing? 设置为 true。我使用此视图模板向用户表明这一点
-if instance.send(base_name)
.form-row
- if instance.send(base_name).attachment_processing?
.image_processing
%span Processing Asset #{proccessing_asset_name(instance.send(base_name))}
= image_tag("ajax-loader.gif")
- else
= nice_asset(instance.send(base_name),options[:thumb])
当资产完成处理后,该属性设置为 false,并且图像在页面刷新后显示。查看服务器日志,它会在完成处理后自动启动。
Started GET "/assets/ajax-loader.gif" for 127.0.0.1 at 2014-11-21 16:10:38 +0000
(0.2ms) BEGIN
SQL (0.4ms) UPDATE `assets` SET `attachment_processing` = 0, `updated_at` = '2014-11-21 16:11:14' WHERE `assets`.`id` = 6362
(1.9ms) COMMIT
有没有办法,通过 ajax 或其他方法,使用它来自动显示完成的图像? 我只是在寻找一种对用户更友好的方法,而不是要求用户刷新页面或类似的东西?
非常感谢
【问题讨论】:
-
是的,我建议你去 websocket! socket.io 可以借助 redis pubsub 解决这个问题。
标签: jquery ruby-on-rails ruby ajax