Please help me understand how arrays are translated in rails

I've spent hours researching the subject and have tried many test sequences in IRB, and rails console but I'm just having trouble making headway into what is probably a very easy subject.

I understand arrays with at least 4 other languages but with Ruby I haven't found a mental connection with how I can assign variables to arrays..

Take for example:

def calculate_tsos(model, datavar, teamvar, valvar) var = model.compiled_this_week.find(:all) var.each_with_index do |rows, i|      puts "#{model} [ Row #{i} | Team ID = #{rows.team_id} | Team = #{rows.team.name} | #{datavar} = #{rows.__send__(datavar)}" end end

This will give me:

TotalOffense [ Row 0 | Team ID = 5 | Team = Tulsa | ydspgm = 569.86 TotalOffense [ Row 1 | Team ID = 47 | Team = Houston | ydspgm = 562.77 TotalOffense [ Row 2 | Team ID = 20 | Team = Oklahoma | ydspgm =
547.86 etc. etc.

So far, so good. I can at least see the data that I want.

Now, I want to assign the Team ID and the ydspgm to variables that I
can manipulate and use later on. Normally, I would think that I could do something like this:

def calculate_tsos(model, datavar, teamvar, valvar) var = model.compiled_this_week.find(:all) var.each_with_index do |rows, i|    teamvar[i] = rows.team.id    valvar[i] = rows.__send__(datavar)    puts "#{model} [ Row #{i} | Team ID = #{teamid[i]} | Team = #{rows.team.name} | #{datavar} = #{teamval[i]}" end end

But I get a..

undefined method `=' for 0:Fixnum

Down below you say you make this call and pass 'to_team_id' as the
argument to 'teamvar'. So teamvar is an integer... not array. Just
above you are trying to do "teamvar[i]". You can't do that on an
integer (which is what your error is trying to tell you).

If it were me I'd do this:

def calculate_tsos(model, datavar)   var = model.compiled_this_week.find(:all)   teamvar = # you need this so that the variable continues to exist
after the each_with_index block.   valvar = # same for this one.   var.each_with_index do |rows, i|     teamvar[i] = rows.team.id     valvar[i] = rows.__send__(datavar)     puts "#{model} [ Row #{i} | Team ID = #{teamid[i]} | Team =           #{rows.team.name} | #{datavar} = #{teamval[i]}"   end   [teamvar, valvar] #return the results end

And then call it like this:

tv, vv = calculate_tsos(....)