答案#1是很容易的,系统调用,如果命令有一个零退出状态,即
ret = system('ls','-l')
RET会是真的。 $?将包含一个过程::状态对象,您可以从中获得退出状态
unless system('ls','-l','/a_bogus_dir')
logger.debug("ls failed with #{$?.exitstatus}")
end
#2的答案可以有多种方式。您可以创建一个控制器操作,只需抓取文件系统中特定文件的内容,然后返回内容。
def get_file_contents
File.open(params[:file_to_read],"r") { |f| @contents = f.read }
respond_to |format|
format.js
end
end
然后创建文件get_file_contents.js.erb:
$('#display_div').html('<%= escape_javascript(@contents) %>');
然后,你有你的页面上创建某种形式的计时器反复调用控制器操作,使用jQuery。计时器。在计时圈,你会打电话
$.get('/get_file_contents?file_to_read=public/logfile');
这会打击控制器,抓住该文件的内容,并执行get_file_contents.js.erb,这将更新文件的当前内容股利。
您必须将route/get_file_contents添加到routes.rb。
对不起。可悲的是,我在这里花岗岩上咬了一口。没有得到它的工作。它不显示任何更新。它似乎用html而不是“js”来回应。我已经创建了一个名为“get_file_contents.html.erb”的文件,其中包含我的“display_div” - 和“get_file_contents.js.erb”。但我有一个空的网站(没有HTML)。 – 2012-06-22 13:04:41