Skip to content

Instantly share code, notes, and snippets.

@elvisgiv
Last active April 27, 2016 15:48
Show Gist options
  • Save elvisgiv/ad2229783de17c692feae77035e2fc19 to your computer and use it in GitHub Desktop.
Save elvisgiv/ad2229783de17c692feae77035e2fc19 to your computer and use it in GitHub Desktop.

#Вызов команды терминала опреационной системы из метода

../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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment