我在我的Sinatra應用程序之外的文件夾中有一個Ruby腳本,我想用按鈕單擊運行。如何從Sinatra應用程序運行外部Ruby腳本
這是app.rb文件:
require 'sinatra'
get '/' do
erb :home
end
get '/launch_script' do
system("ruby path\\to\\file\\delete_rows_csv.rb")
end
這是home.erb文件:
<a href='/launch_script'> Launch a Script </a>
我應該加載文件路徑或要求該文件得到這個工作?
這是一個偉大的工作的解決方案:
require 'sinatra'
get '/' do
erb :home
end
get '/launch_script' do
load 'path\\to\\file\\delete_rows_csv.rb'
end
請勿使用'ruby path/to/file'。使用你想運行代碼的Ruby解釋器的絕對路徑。如果沒有,系統必須搜索環境PATH才能找到它,並且如果PATH不包括Ruby所在的地方,則命令將失敗。通常,在Web服務器上未設置適當的路徑,因爲服務器作爲受限用戶運行。 –
表示同意,但爲了不在郵件中張貼我的絕對路徑,我將其留在了外面。 – aronlmin