when to use @ and when to use self.

hey there,
i am seeking some general info about how to get at a certain value and
how to get that value in a method.

for example, lets say i have a machine.
each machine has_many :sensors
so sensor belongs_to :machine
sensor also has_many :reports
each report has a duration field that is then number of seconds since
the last report of a certain value
now if i wanted to add the seconds together for a total when in a
certain status, i would do something like this.
total = 0
for row in results
  duration = row[0]
  value = row[1]
  if value == 'on':
    total += duration

of course in rails we have sensor.value, sensor.duration
so, anyway. i want to list in a table these figures.

so i need a method in sensor.rb to do this, right

so if i have for machine in machines do
    <%= machine.sensor.total %>

how do i declare that ?
in the Sensor class, do i have
def total
   i dont know what to put here to get the right sensor

and is it def total, or is it def self.total ?

thanks
   
so for sensor in machine.sensors |sensor| do

You want to do

def total

end

because you want (I assume) to get the total for that particular
instance of Sensor.
You would then want to do something like

def total
reports.sum
‘duration’
end

Fred


Posted via http://www.ruby-forum.com/.

method before, i assume it adds all the integers in that db field for the reports table ? thats cool too, i cant use it for this, because i can only add the ones where the status == ‘running’ but still , good thing for my notes.

again, thanks

wow, i am so digging this. that line replaced 9 lines of php

this is really exciting, thanks

sk