#Вызов команды терминала опреационной системы из метода
../routes.rb
scope '/cmsadmin' do
scope module: 'admin', as: 'admin' do
# for Maintenance
resources :maintenance, only: [:index] do
collection do
post 'search'
get 'rake_docs_rebuild'
end
end
end
end
../maintenance_controller.rb
class Admin::MaintenanceController < Admin::MyAdminBaseController
def rake_docs_rebuild
# invoke rake task docs:rebuild #вызов команды терминала _rake task docs:rebuild_ из контроллера
a = Maintenance::Maintenance.run_rake_task("docs:rebuild")
respond_to do |format|
format.html {
}
format.json{
render :json=>{:res=> 1, :output => a}
}
end
end
end
../lib/maintenance/maintenance.rb
module Maintenance
class Maintenance
def self.run_rake_task(task_name)
%x(rake #{task_name})
#`rake #{task_name}`
end
end
end
Команда %x(rake #{task_name})
и команда 'rake #{task_name}
' делают одно и то же с разным синтаксисом - вызов команды терминала rake task docs:rebuild