aris
October 2, 2012, 2:47pm
1
Hi bellow is the script.
I think its failing at
if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end
but dont understand where is the problem , i just get Internal Server
Error if i enable
this line brydc << #{f[‘name’]}
I am quite new and i am from php background… and in php it was easy to
troubleshoot …
#!/usr/bin/ruby
require ‘cgi’
require ‘mysql’
cgi = CGI.new
m = Mysql.new(“localhost”,“root”,"",“report”)
r = m.query(“select device.name as name, hardware.name as model
device.hardware=hardware.id”)
brydc=Array.new
r.each_hash do |f|
if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end
end
puts cgi.header
puts "
Per DataCenter
Switch Per DataCenter
"
brydc.each do |f|
puts “
”
puts “#{f[‘name’]} ”
puts “ ”
end
puts "
"
thanks for your help.
Am 02.10.2012 14:47, schrieb Ferdous ara:
Hi bellow is the script.
^^^^^^
I think its failing at
if #{f[‘name’]} =~/asw1-v2r7c9-bry/
brydc << #{f[‘name’]}
end
You should use irb to try out code snippets.
1.9.3-p194 :001 > value = ‘a hash value’
=> “a hash value”
1.9.3-p194 :002 > array = []
=> []
1.9.3-p194 :003 > array << #{value}
1.9.3-p194 :004 > puts array
SyntaxError: (irb):4: syntax error, unexpected tIDENTIFIER, expecting
keyword_do or ‘{’ or ‘(’ from …/irb:16:in `’
#{} is supposed to be used inside double quotes.
Assuming your hash values are strings, just remove it.
if f[‘name’] =~ /asw1-v2r7c9-bry/
brydc << f[‘name’]
end
I am quite new and i am from php background… and in php it was easy to
…
The ruby error will be in your web server’s log file. It looks like you
are using a unix operating system, so you can tail the log file:
$ tail -f ‘log_file_name’
…which will show the last lines from the log file and update them in
real time as new lines are written to the log file.
Or, you can use something like here:
a) cgi-exception | RubyGems.org | your community gem host
or
b) http://eradman.com/posts/ruby-cgi.html