コントローラーのメソッドの後に呼び出される ruby スクリプトを実行したい。controlle を実行すると、現在のパスがプロジェクトのルートにあることがわかります。
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 bash-shell と rails の両方で動作します。
だから何の問題?許可?設定?
事前にありがとうございます〜RORでスクリプトを呼び出したときにエラー出力を取得する方法はありますか?エラーメッセージは表示されないと思います。
ruby スクリプトが require 'mechanize' と 'nokogiri' で停止しているのを見つけました。脚本?スクリプトは何時間も実行されます。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'
**コントローラーでRubyスクリプトを呼び出したときにエラーを表示する人はいますか? デバッグするのは難しいです。情報は表示されませんでした。**
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 %>