Ask bout net-ping


#1

hi,

can anybody help me?
i wanna create a RoR monitoring application for my project.
i have a database with table named nodes
in that nodes i have id and ipadd.

here’s my code:
#nodes_controller.rb

require ‘net/ping’
include Net

class NodesController < ApplicationController
def index
@nodes = Node.find(:all)

@arr_stat = Array.new
i = 0
for node in @nodes do

  stat = PingExternal.new(node.ipadd)

  @arr_stat[i]['ipadd'] = node.ipadd
  if stat
    @arr_stat[i]['status'] = 'online';
    puts "online"
  else
    @arr_stat[i]['status'] = 'offline';
    puts "offline"
  end
end

respond_to do |format|
  format.html { render :html => @arr_stat }# index.html.erb
  format.xml  { render :xml => @nodes }
end

end
##########################

why when i run the code it always says:

You have a nil object when you didn’t expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]=

please help me solved this.


#2

On Wednesday 01 April 2009 20:40:12 Junior Junior wangsa wrote:

  @arr_stat[i]['ipadd'] = node.ipadd

[…]

why when i run the code it always says:

You have a nil object when you didn’t expect it!
You might have expected an instance of ActiveRecord::Base.
The error occurred while evaluating nil.[]=

I’m guessing @arr_stat[i] is nil at some point.

Also, for future reference, Rails raises that particular error quite
often.
Pasting that would be like pasting “segmentation fault” to a C
development
group. I’m sure the error included more information than that.

But you may want to take this to the Rails group.


#3

ups…
i post wrong place… sorry