Я хочу запустить ruby-скрипт, который будет вызываться методом aftest контроллера. , когда мы выдаем управляющий сигнал, мы знаем, что текущий путь находится в корне проекта.Не удается вызвать/запустить/выполнить ruby-скрипт из Rails
FullScanTest.rb: сценарий, который я хочу вызвать. Я могу запустить следующую команду в оболочке bash, но не могу вызывать в rails ruby ./public/ruby_lib/af/FullScanTest.rb -i 172.16.178.178 -s 25_10_1 -f auto поэтому я написал простой рубиновый скрипт, которые отвечают только на строку. он действительно работал ~ ruby ./public/ruby_lib/af/test.rb он работает как на раковине, так и на рельсах.
так что проблема? разрешение? настройка?
Спасибо всем заблаговременно ~ есть все равно, чтобы получить вывод ошибки при вызове скрипта на ROR, Я думаю, что он не показывает сообщение об ошибке.
я нашел скрипт остановки рубин требует «механизировать» и «nokogiri». (Так я маркировать их ~ они не будут использоваться в моем приложении) однако сценарий также остановиться на где-то не в expectaion, является существует ли какой-либо предел для запуска скрипта? сценарий будет работать в течение многих часов. я могу выполнить команду ruby ./public/ruby_lib/af/FullScanTest.rb -i 172.16.178.178 -s 25_10_1 -f auto
под prj_root
require 'open-uri'
require 'rubygems'
require 'mechanize'
require 'logger'
require 'time'
require 'nokogiri'
require 'pp'
** есть кто-нибудь, чтобы показать ошибку, когда я называю рубиновый скрипт контроллером? Мне сложно отлаживать, он не показывал никакой информации. **
def aftest
af_lib="./public/ruby_lib/af/"
prog="FullScanTest.rb"
prog2="test.rb"
params="-i 172.16.178.178 -s 25_10_1 -f auto "
cmd = " ruby #{af_lib}#{prog} #{params} "
@cmd = %x[ echo #{cmd} ]
res1 = %x[ ruby #{af_lib}#{prog} ]
res2 = %x[ ruby #{af_lib}#{prog2} #{params} --force 2>&1 ]
@res1 = "#{res1}"
@res1 = "#{res2}"
end
я использовать представление, чтобы показать выход, но он не показал каких-либо ошибок
<h1>Af test lala</h1>
<%= form_tag :action => 'update', :id => @some_object %>
<%= form_tag({ :action => :save, }, { :method => :post }) %>
<h2>Command</h2>
<%= @cmd %>
<h2>Results</h2>
<%= @res1 %>
<h3>H3</h3>
<%= @res2 %>
да, я использовал систему, чтобы вызвать скрипт, он сделал работу !! но не может работать на рельсах. Я написал простой рубиновый скрипт, вызываемый контроллером. это тоже работало ~ – newBike
Посмотрите внимательно на мой оригинальный пост, разделили ли вы аргументы на отдельные аргументы системы? Если это так, то я думаю, что вы сейчас находитесь в вопросе о «предложениях». Имеет ли сценарий на сервере разрешение на выполнение для учетной записи пользователя, на которой работает веб-сервер? – RadBrad
все еще не работает, и я набрал команду chmod -R 777 * undex prj_root. он все еще не работает ~~ – newBike