jquery - 如何在rails 3中实时显示日志更新?

标签 jquery ruby-on-rails-3

我是 Rails3 和 ruby​​ 的新用户,想就我遇到的问题提出问题

在我的应用程序中,我有一个方法,它从数据库中获取主机列表,并通过 ssh 连接到每个主机并运行作业 作业的结果附加到一个字符串(将其视为日志),这都是通过指定要运行的命令的帖子调用的

进程结束时,日志将显示在页面上

到目前为止,一切正常,但是运行所有连接所需的时间相当长(超过一分钟),因此我希望显示结果页面并在 div 中显示日志文件更新,直到该过程完成(几乎实时)

我已经做了一些研究,我确信我可以使用 JQuery 或类似的东西来实现这个想法,但我不知道如何在 Rails 环境中以及我的所有教程中执行此类操作发现并没有什么帮助

这是我现在的代码

update_controller.rb

def update
  list = Device.all
  c = params[:comm.]
  # create log file
  @create_template = "Log"

  list.each do |device|
    #call method to connect via ssh and run specific command
    @create_template += ssh_connect(device.address, c)
  end

  # show process complete    
  @create_template += "Process Complete" 
end

这是我的更新 View

<p><b>SSH Connection log</b></p>
<div class="scroll" style="width:30%">
<%=  @create_template.html_safe %>
</div>

因此,如果有人能给我指出任何教程的方向或给我一个要研究的想法,我将不胜感激,或者你有办法做到这一点,那就太好了

干杯

迈克

最佳答案

如果您已经在使用 Rails 3.1,则应该尝试 HTTP Streaming

http://railscasts.com/episodes/266-http-streaming

当然,您必须更改 Controller 中的代码,以便在连接到每个设备后将日志数据流式传输回客户端。

此外,deployinator附带一个 log_and_stream 模块,听起来正是您想要的。看看那个。

关于jquery - 如何在rails 3中实时显示日志更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7037612/

相关文章:

javascript - 根据邮政编码自动填充州和城市

javascript - 如何使用 d3.js 在 Sunburst 图表上定位文本标签

ruby-on-rails - 如何在 form_helper 中强制输入字段的 ID?

ruby-on-rails-3 - :has_many :through associations two levels deep

jquery - Rails 3 + jquery + ajax - 不要在重定向的 ajax 请求时丢弃 flash

mysql - 在 Rails 3 中急切加载?

jquery - 为什么jqueryui.dialog选中的元素是表格时会忽略height参数?

javascript - 如何将html5日期输入限制为合理的年份

php - 如果 WooCommerce 3+ 中的购物车页面上的购物车已清空,则重定向到商店

jquery - 尝试使用rails中的js.erb文件刷新由index.html.erb加载的div