答案#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