我想運行Rails應用程序內的資產預編譯的任務,因爲我有很多依賴誰將會更改代碼,在這種情況下,所有每當他們改變,我需要爲我不能運行腳本的時間給他們服務器的訪問,所以我爲他們提供了GUI從他們本身並運行該腳本,所以,我已經建立的用戶界面來運行一些參數的任務,像運行rake任務裏面的Rails應用程序
system("Template='#{params[:template]}' Theme='#{params[:theme]}' rake assets:precompile)
我正在從UI兩個值(PARAMS [:模板],則params [:主題])。我想運行其他路徑(站點路徑)這個任務的另一件事是指管理員端UI是有這個任務應該在網站目錄下執行,
if(params[:theme_script] == "true")
template=Template.where(:name => params[:template]).first
if template
theme = template.themes.where(:name => params[:theme]).first
if theme
# Dir.chdir "#{THEMEPATH}"do
# `Template="#{template.name}" Theme="#{theme.name}" rake assets:precompile`
# end
# sleep 10
# system("#{Rails.root.to_s}/lib/shell_script.sh")
# RunRake.run_rake(template.name,theme.name)
# Dir.chdir "#{THEMEPATH}"do
# Rake::Task['assets:precompile'].invoke
# end
ENV["Template"] = template.name
ENV["Theme"] = theme.name
precompile_task = "bundle exec rake assets:precompile --trace 2>&1"
output = Dir.chdir(THEMEPATH) { %x[ #{precompile_task} ] }
flash[:notice] = "Asset created successfully"
else
flash[:notice] = "U have enter invalid data"
end
else
flash[:notice] = "U have enter invalid data"
end
end
這是我的代碼我檢查多個條件,允許我執行任務。
我試圖通過把在控制器和lib這個代碼,但是這是行不通的。
我也試過用shell腳本。
請任何人都可以幫助我。
這是*真的*不是如何使用資產編譯。您應該在部署時通過構建腳本自動執行此操作,而不是手動執行此操作。應該沒有理由爲此需要GUI。 – meagar
感謝您的答覆,因爲我有很多依賴誰時,他們改變我需要運行腳本,我不能給他們的服務器訪問 所以我從提供GUI爲他們所有的時間會更改代碼,在這種情況下,只有他們可以運行腳本。 – Jenorish
@МалъСкрылевъ請幫助我如何傳遞參數? – Jenorish